我按照本教程创建一个GridView:
这一行:
imageView.setLayoutParams(new GridView.LayoutParams(85, 85));
85x85 尺寸非常适合我的 Wildfire,但在 HTC Desire 上它看起来非常小。如何根据屏幕更改图像大小?
我有 2 种不同的布局,但Gridview
XML 文件中没有任何属性可以更改图像大小。
我按照本教程创建一个GridView:
这一行:
imageView.setLayoutParams(new GridView.LayoutParams(85, 85));
85x85 尺寸非常适合我的 Wildfire,但在 HTC Desire 上它看起来非常小。如何根据屏幕更改图像大小?
我有 2 种不同的布局,但Gridview
XML 文件中没有任何属性可以更改图像大小。
您可以尝试根据当前设备的像素密度进行调整。
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;
}
类似于 willytate 的答案,但你最好在 xml (for 85dp) 中创建一个维度值并像这样检索它:
int size = resources.getDimensionPixelSize(R.dimen.your_dimension);
这样,宽度/高度将保持一致,而您不必担心太多。