-2

如何在运行时将位图缩放到非常小的尺寸,然后将它们存储在内部存储中?如何在运行时将缩放的位图从存储中调用到程序中,如果不存在,则从可绘制文件夹中调用它,对其进行缩放,将其写入存储,然后将其绑定到视图。

4

2 回答 2

0

您可以使用BitmapFactory.Options类将图像裁剪为任何大小。

您可以使用以下内容:

BitmapFactory.Options options = new BitmapFactory.Options();
options.inJustDecodeBounds = true;
options.inSampleSize = 8; // 1/8th of actual image.
BitmapFactory.decodeResource(getResources(), R.id.myimage, options);
int imageHeight = options.outHeight;
int imageWidth = options.outWidth;
String imageType = options.outMimeType;

在这里,当你使用 Bitmap 时,总是调用它的bmp.recycle()方法,因为 GC 不能清除 Bitmap 持有的内存,如果你的 bitmap 没有被垃圾收集,那么你也会得到 OME。

于 2012-09-27T08:25:56.377 回答
0

如果要缩放位图,可以使用Bitmap.createScaledBitmap

要将任意位图缩放到 32x32,您可以按如下方式进行:

Bitmap smallBitmap = Bitmap.createScaledBitmap( fullSizeBitmap, 32,  32,  true );
于 2012-09-27T08:28:12.303 回答