在Android中裁剪图像并调整其大小

我正在从磁盘读取图像,并将其显示在一行中ListView。图像文件大于ImageView行中需要显示的图像文件。由于我需要将bitmapsRAM

缓存在内存中以加快访问速度,因此我希望它们的大小只能与ImageViews 一样大(85x85 dip)

现在我正在读文件

位图= BitmapFactory.decodeFile(file);

而ImageView负责缩放和裁剪它

android:scaleType =“ centerCrop”

AFAIK这是将整个位图保留在内存中(因为我将其缓存为XD),这很糟糕

如何在加载文件时从ImageView中消除此责任并进行裁切和缩放?所有位图将以85x85倾斜度显示,并且需要为“ centerCrop”

回答:

您可以在加载,裁剪和缩放之前找出图片的尺寸:

BitmapFactory.Options options = new BitmapFactory.Options();

options.inJustDecodeBounds = true;

Bitmap bmo = BitmapFactory.decodeFile(file.getAbsolutePath(), options);

然后以样本大小加载:

...

options.inSampleSize = 1/2;

bmo = BitmapFactory.decodeFile(file.getAbsolutePath(), options);

...

= Bitmap.createScaledBitmap(bmo, dW, dH, false);

不要忘记回收临时位图,否则您将获得OOME。

bmo.recycle();

以上是 在Android中裁剪图像并调整其大小 的全部内容, 来源链接: utcz.com/qa/426029.html

回到顶部