2011-06-01 54 views
5

我按照这个教程创建GridView调整图像在Android

这条线:

imageView.setLayoutParams(new GridView.LayoutParams(85, 85)); 

大小85x85是伟大的,我的野火,但在HTC Desire的它看起来非常小。 如何根据屏幕更改图像大小?

我有2种不同的布局,但Gridview在XML文件中没有任何属性来更改图像大小。

回答

8

您可以尝试根据当前设备的像素密度进行调整。

DisplayMetrics metrics = new DisplayMetrics(); 
getWindowManager().getDefaultDisplay().getMetrics(metrics); 
switch(metrics.densityDpi){ 
    case DisplayMetrics.DENSITY_LOW: 
       imageView.setLayoutParams(new GridView.LayoutParams(lowVal, lowVal)); 
       break; 
    case DisplayMetrics.DENSITY_MEDIUM: 
       imageView.setLayoutParams(new GridView.LayoutParams(medVal, medVal)); 
       break; 
    case DisplayMetrics.DENSITY_HIGH: 
       imageView.setLayoutParams(new GridView.LayoutParams(highVal, highVal)); 
       break; 
} 
+0

完美,这个答案是完美的。谢谢! – Josue 2011-06-07 07:20:50

+0

非常感谢! – 2013-03-25 11:04:33

+0

getWindowManager()方法不可用它是什么? – 2013-08-26 16:25:25

6

到willytate的答案相似,但你最好在一个XML创建dimension值(85dp)和检索它像这样:

int size = resources.getDimensionPixelSize(R.dimen.your_dimension); 

这样,宽度/高度将大小一致,无需担心太多。

+0

这是一个更好的方法 – Twisted 2012-06-10 20:07:23