Android:Gallery干扰了ImageView的缩放设置

时间:2010-12-10 18:32:17

标签: android gallery imageview scaling

我有一些高度为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时则不行。是什么给了什么?

1 个答案:

答案 0 :(得分:0)

这实际上不是图库问题,我正在下载的图像没有正确缩放,因此它们的最大宽度/高度与视图相同,而不是最小宽度/高度在这里实现我想要的。我现在以适当的大小下载并且setScaleType(ScaleType.CENTER_CROP)正常工作。