我有一个 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() 的调用。