extractThumbnail 生成未知位图配置错误

extractThumbnail generate unknown bitmap configuration error

我正在尝试使用以下方法从图像资源生成缩略图:

ThumbnailUtils.extractThumbnail(Bitmap src, int width, int height);

但是当我这样做时,出现错误:

java.lang.IllegalArgumentException: unknown bitmap configuration

这是我的代码:

// get a scaled down version of the image resource, to avoid loading
// the full image into memory
Bitmap im1 = decodeSampledBitmapFromResource(context.getResources(),
                R.drawable.im1, 
                R.dimen.thumbnail_width,
                R.dimen.thumbnail_height);

Bitmap thumbnail = ThumbnailUtils.extractThumbnail(im1,
                     R.dimen.thumbnail_width,
                     R.dimen.thumbnail_height);

holder.picture.setImageBitmap(thumbnail);

在调用方法 extractThumbnail 的行弹出错误。

decodeSampledBitmapFromResource 方法就是此处描述的方法: https://developer.android.com/intl/es/training/displaying-bitmaps/load-bitmap.html

图像是 "JPEG" 图像,尺寸为 680x1024,权重为 183Ko。

我尝试使用以下方法:

Bitmap.createScaledBitmap(Bitmap src, int dstWidth, int dstHeight, boolean filter);

但是我得到了同样的错误。

您可能会遇到问题,因为您传递的是资源的 ID,而不是这些 ID 代表的实际值。尝试添加

int height = (int)context.getResources().getDimension(R.dimen.thumbnail_height);
int width = (int)context.getResources().getDimension(R.dimen.thumbnail_width);

现在将您的代码修改为如下所示。

// get a scaled down version of the image resource, to avoid loading
// the full image into memory
Bitmap im1 = decodeSampledBitmapFromResource(context.getResources(),
                R.drawable.im1, 
                width,
                height);

Bitmap thumbnail = ThumbnailUtils.extractThumbnail(im1,
                     width,
                     height);