2011-06-01 78 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