android:gridview如何定义网格大小以始终适合屏幕

时间:2011-10-26 12:31:34

标签: android image 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() {`

非常感谢您的时间和回答。

2 个答案:

答案 0 :(得分: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()

答案 1 :(得分:0)

几年后......

要稍微扩展fr4n给出的答案,您可以在整数资源xml中定义图像大小值,然后将不同的值放在限定的“values-xxx”资源文件夹中。

e.g。 values-mdpi等。

或者如果是android 3.2或更高版本

values-sw300dp等。

  

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

     

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

(从内存编码,因此无法保证语法100%正确)