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