如何在java端的网格视图中正确调整图像视图的大小; 的android?

use*_*976 4 android gridview sizing

这是我的代码,在我的GridView中放置一些图像装饰

public View getView(int position, View convertView, ViewGroup parent) {
        ImageView v;
        if(convertView == null) {
            v = new ImageView(c);
            v.setLayoutParams(new GridView.LayoutParams(90,90));
            v.setScaleType(ImageView.ScaleType.CENTER_CROP);
            v.setPadding(2, 2, 2, 2);
        } else {
            v = (ImageView) convertView;
        }

        v.setImageDrawable(c.getResources().getDrawable(ops[position]));
        return v;
    }                                                                                      
Run Code Online (Sandbox Code Playgroud)

但对于较小的机器,layoutParams太大了,有没有人知道我如何做(如果(90dp,90dp)的宽度和高度在java方面?

Dal*_*mas 5

在XML中创建维度:

<dimen name="image_size">90dp</dimen>
Run Code Online (Sandbox Code Playgroud)

然后从你的代码中获取它:

int size = (int) getResources().getDimension(R.dimen.image_size);
v.setLayoutParams(new GridView.LayoutParams(size, size));
Run Code Online (Sandbox Code Playgroud)

您还可以通过创建不同的values文件夹,根据屏幕大小设置不同的尺寸.

例如,将一个较大的维度放在一个名为的文件夹中values-w600dp(如果屏幕的宽度大于或等于600dp将使用该文件夹),并在简单values文件夹中放置一个较小的维度(您将有两个dimens.xml文件).

您将在文档中找到更多详细信息.