Bitmap是内存占用大户,处理时稍不注意就导致大量的内存被消耗,如何高效使用Bitmap呢?
当我们要处理图片时,大部分情况并不需要显示原图,而加载缩放后的图片即可。
获取原图片大小
不加载整个图片,而只获取图片大小:
BitmapFactory.Options options = new BitmapFactory.Options();
options.inJustDecodeBounds = true;
BitmapFactory.decodeFile(path, options);
path
为原图路径;
options.outWidth
、options.outHeight
即为原图宽高。
缩放比例
options.inSampleSize
控制Bitmap解析尺寸比例,通过对比原图宽高与要求的目标宽高取合适的值即可。
创建Bitmap
options.inJustDecodeBounds = false;
Bitmap bitmap = BitmapFactory.decodeFile(path, options);