0

我有一个 4 列和 n 行的 GridView。每个单元格只是一个 ImageView。我的自定义适配器的 getView() 代码如下所示:

@Override
public View getView(int position, View convertView, ViewGroup parent) {
    ImageView imageView;
    if (convertView == null) {  // if it's not recycled, initialize some attributes
        imageView = new ImageView(mContext);
    } else {
        imageView = (ImageView) convertView;
    }
    imageView.setLayoutParams(new GridView.LayoutParams(100, 100));
    imageView.setScaleType(ImageView.ScaleType.FIT_XY);
    imageView.setPadding(1, 1, 1, 1);
    //imageView.setAdjustViewBounds(true);

    if(imageLoader != null) {
        String url = randomImage();
        imageView.setContentDescription(url);
        imageLoader.DisplayImage(url, imageView);
    }
    return imageView;
}

imageLoader 将选择一个随机 URL,然后在后台获取它并相应地更新 ImageView。这工作得很好,花花公子。问题是生成的图像似乎使用的是 FIT_START 而不是 FIT_XY 的比例类型。我明确地将其设置为 FIT_XY,甚至在设置 imageView 的可绘制对象的代码中再次设置它......仍然不是 FIT_XY,我很难过。想法?

编辑删除对 setAdjustViewBounds() 的调用。

4

1 回答 1

0

所以我才发现问题。我正在使用 Romain Guy 的代码从位图创建 RoundedDrawable - 得到圆角,ala iOS,如下所示:好奇-creature.org/2012/12/11/... ...当我跳过 RoundedDrawable 转换时,它工作正常。RoundedDrawable 代码中的某些东西是让整个事情失败的原因。我只需要找到另一种方法来绕过图像视图的角落。感谢@kcoppock,我现在正在使用 CENTER_CROP !:)

于 2013-04-15T18:02:12.883 回答