4

这是我在我的 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;
    }                                                                                      

但是对于较小的机器,layoutParams 太大了,有谁知道我如何在 java 端的宽度和高度上做一个(90dp,90dp)?

4

1 回答 1

5

在 XML 中创建维度:

<dimen name="image_size">90dp</dimen>

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

int size = (int) getResources().getDimension(R.dimen.image_size);
v.setLayoutParams(new GridView.LayoutParams(size, size));

values您还可以通过创建不同的文件夹来根据屏幕尺寸设置不同的尺寸。

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

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

于 2012-08-28T22:17:52.517 回答