Android中bitmap优化,Bitmap获取优化

[android]代码库public static Bitmap getBitmapBySimpleSize(Object object, float width,

float height) {

if (null == object) {

return null;

}

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

options.inJustDecodeBounds = true;

// 通过这个bitmap获取图片的宽和高

Bitmap bitmap = BitmapFactory.decodeFile(object.toString(), options);

if (options.outWidth > width) {

int scale = (int) (options.outWidth / width);

// 如果按照宽度缩放比例导致高度小于原定高度,则按照高度的缩放比例来缩放

if (options.outHeight / scale < height) {

scale = (int) (options.outHeight / height);

}

// Logger.e( "HongLi" , "options.outWidth1:" + options.outWidth +

// ";options.outHeight:" + options.outHeight );

scale = scale <= 0 ? 1 : scale;

options.inSampleSize = scale;

options.outWidth = options.outWidth / options.inSampleSize;

options.outHeight = options.outHeight / options.inSampleSize;

// Logger.e( "HongLi" , "options.outWidth2:" + options.outWidth +

// ";options.outHeight:" + options.outHeight );

}

setBitmapNormalOptions(options);

// 注意这次要把options.inJustDecodeBounds 设为 false,这次图片是要读取出来的。

bitmap = BitmapFactory.decodeFile(object.toString(), options);

return bitmap;

}

private static void setBitmapNormalOptions(Options options) {

if (null == options) {

return;

}

options.inJustDecodeBounds = false;

options.inPurgeable = true;

options.inInputShareable = true;

options.inPreferredConfig = Bitmap.Config.ARGB_8888;

}

694748ed64b9390909c0d88230893790.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值