rainbow-android-app

Bitmap缩放

Bitmap是内存占用大户,处理时稍不注意就导致大量的内存被消耗,如何高效使用Bitmap呢?

当我们要处理图片时,大部分情况并不需要显示原图,而加载缩放后的图片即可。

  • 获取原图片大小

    不加载整个图片,而只获取图片大小:

    BitmapFactory.Options options = new BitmapFactory.Options();
    options.inJustDecodeBounds = true;
    BitmapFactory.decodeFile(path, options);
    

    path为原图路径;

    options.outWidthoptions.outHeight即为原图宽高。

  • 缩放比例

    options.inSampleSize控制Bitmap解析尺寸比例,通过对比原图宽高与要求的目标宽高取合适的值即可。

  • 创建Bitmap

    options.inJustDecodeBounds = false;
    Bitmap bitmap = BitmapFactory.decodeFile(path, options);