ImageView Scale在GridView内部类型不正确

时间:2013-04-14 22:43:11

标签: android gridview imageview

我有一个包含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的drawable的代码中再次设置它...仍然不是FIT_XY而且我很难过。想法?

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

1 个答案:

答案 0 :(得分:0)

所以我刚发现了这个问题。我正在使用Romain Guy的代码从位图创建RoundedDrawable - 得到圆角,ala iOS,如下所示:curious-creature.org/2012/12/11 / ... ...当我跳过RoundedDrawable转换时,它工作正常。 RoundedDrawable代码中的某些东西正在抛弃这一切。我只需要找到另一种方法来围绕imageview的角落。我现在正在使用CENTER_CROP感谢@kcoppock! :)