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

发布于 2024-12-11 17:48:49 字数 1144 浏览 0 评论 0原文

这是一个简单的问题,但我无法得到答案。 我希望网格图像根据设备屏幕调整大小。

我将我的 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() {`

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

This is a simple question but i am not able to get the answer.
I want the grid images to resize depending on the device screen.

I have my Gridview defined as

<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>

and in the adapter i am doing :

 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() {`

thanks a lot for your time and answer.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

十年九夏 2024-12-18 17:48:49
    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()
    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()
七颜 2024-12-18 17:48:49

几年后...

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

例如,values-mdpi 等

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

values-sw300dp 等。

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

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

(根据内存编码,因此不能保证语法 100% 正确)

A couple of years later...

To expand slightly on the answer given by fr4n, you could define the image size value in an integer resource xml, then put different values in qualified "values-xxx" resource folders.

e.g. values-mdpi etc.

or if android 3.2 or above

values-sw300dp etc.

Integer size = getResources().getInteger(R.int.image_size));

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

(coded from memory, so no guarantee the syntax is 100% correct)

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文