5

我按照本教程创建一个GridView

这一行:

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

85x85 尺寸非常适合我的 Wildfire,但在 HTC Desire 上它看起来非常小。如何根据屏幕更改图像大小?

我有 2 种不同的布局,但GridviewXML 文件中没有任何属性可以更改图像大小。

4

2 回答 2

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;
}
于 2011-06-01T13:03:36.087 回答
6

类似于 willytate 的答案,但你最好在 xml (for 85dp) 中创建一个维度值并像这样检索它:

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

这样,宽度/高度将保持一致,而您不必担心太多。

于 2011-06-01T13:11:45.850 回答