如何在运行时将位图缩放到非常小的尺寸,然后将它们存储在内部存储中?如何在运行时将缩放的位图从存储中调用到程序中,如果不存在,则从可绘制文件夹中调用它,对其进行缩放,将其写入存储,然后将其绑定到视图。
问问题
90 次
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 回答