我按照本教程创建 GridView :
这一行:
imageView.setLayoutParams(new GridView.LayoutParams(85, 85));
尺寸85x85非常适合我的Wildfire,但在HTC Desire上看起来非常小。 如何根据屏幕更改图像大小?
我有两种不同的布局,但Gridview
在XML文件中没有任何属性来更改图像大小。
答案 0 :(得分: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;
}
答案 1 :(得分:6)
与willytate的答案类似,但你最好在xml(85dp)中创建dimension值,然后像这样检索它:
int size = resources.getDimensionPixelSize(R.dimen.your_dimension);
这样,宽度/高度的大小将保持一致,而不必担心太多。