我有一些高度为48像素(或更高),宽度为48像素(或更大)的图像。所以基本上我有48 X大于48或大于48 x 48的图像。我想从这些中心裁剪的图像制作一些缩略图,而不是缩放,以便它们保持图像质量。我不能用:
setScaleType(ScaleType.CENTER_CROP)
因为虽然它实现了我正在寻找的裁剪,但遗憾的是它会缩放图像。我试图通过裁剪实现的目标是切断左边和左右边缘。宽度大于48像素的图像的右侧,或者顶部和右侧的图像的右侧。图像底部高度超过48像素。
我在XML布局中尝试ScaleType.CENTER
,它似乎正是我想要的。我在图库中使用这些图像,所以在我的图库适配器中我做了:
@Override
public View getView(int position, View convertView, ViewGroup parent) {
ImageView thumb = new ImageView(mContext);
thumb.setScaleType(ScaleType.CENTER);
thumb.setLayoutParams(new LayoutParams(THUMB_SIZE, THUMB_SIZE));
if (mPhotos != null) {
String imageUrl = mPhotos.get(position).getPhotoHref();
imageUrl = imageUrl.replaceAll(mPattern, mFormat);
ImageManager.instance().displayImage(imageUrl, mContext, thumb, DefaultThumbId);
} else {
thumb.setImageResource(DefaultThumbId);
}
return thumb;
}
但出于某种原因,整个图像都显示出来,但缩小了。它在XML布局中工作得很好,但是当我在代码中执行此操作并将其提供给Gallery
时则不行。是什么给了什么?
答案 0 :(得分:0)
这实际上不是图库问题,我正在下载的图像没有正确缩放,因此它们的最大宽度/高度与视图相同,而不是最小宽度/高度在这里实现我想要的。我现在以适当的大小下载并且setScaleType(ScaleType.CENTER_CROP)正常工作。