2011-10-26 81 views
1

這是一個簡單的問題,但我無法得到答案。 我想要根據設備屏幕調整網格圖像的大小。android:gridview如何定義網格大小來始終適合屏幕

我有我的GridView定義爲

<RelativeLayout android:layout_width="fill_parent" 
    android:layout_height="fill_parent" android:background="#111111"> 
    <GridView xmlns:android="http://schemas.android.com/apk/res/android" 
     android:id="@+id/gridview" android:layout_width="fill_parent" 
     android:layout_height="fill_parent" android:verticalSpacing="10dip" 
     android:horizontalSpacing="10dp" android:numColumns="auto_fit" 
     android:stretchMode="columnWidth" android:listSelector="@null" 
     android:layout_below="@+id/text1view" android:layout_marginTop="10dip" 
     android:layout_centerHorizontal="true" 
     android:layout_alignParentBottom="true" 
     /> 
</RelativeLayout> 

,並在適配器我在做什麼:

imageView = new ImageView(mContext); 
// imageView.setImageResource(mThumbIds[position]); 
imageView.setLayoutParams(new GridView.LayoutParams(150, 150)); 
imageView.setScaleType(ImageView.ScaleType.FIT_XY); 
imageView.setOnClickListener(new View.OnClickListener() {` 

非常感謝您的時間和答案。

回答

0
imageView = new ImageView(mContext); 

    if (activity.getResources().getDisplayMetrics().densityDpi > 200) { 
     // imageView.setImageResource(mThumbIds[position]); 
     imageView.setLayoutParams(new GridView.LayoutParams(150, 150)); 
    } 
    else{ 
     // imageView.setImageResource(mThumbIds[position]); 
     imageView.setLayoutParams(new GridView.LayoutParams(100, 100)); 
    } 

    imageView.setScaleType(ImageView.ScaleType.FIT_XY); 
    imageView.setOnClickListener(new View.OnClickListener() 
+0

謝謝你,有沒有我們可以使用一些關鍵字比浸硬編碼值的方法 – png

0

幾年後...

要由fr4n給出的答案略有擴大,你可以在一個整數資源XML定義圖像大小值,然後把不同的值在合格「的價值觀-xxx「資源文件夾。

例如值-MDPI等

,或者如果機器人3.2或以上

值-sw300dp等

整數大小= getResources()getInteger(R.int.image_size));

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

(從內存編碼,所以不能保證語法是100%正確的)

相關問題