用户注册



邮箱:

密码:

用户登录


邮箱:

密码:
记住登录一个月忘记密码?

发表随想


还能输入:200字
云代码 - android代码库

Bitmap获取优化

2016-05-24 作者: 小松鼠举报

[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;
}


网友评论    (发表评论)

共1 条评论 1/1页

发表评论:

评论须知:

  • 1、评论每次加2分,每天上限为30;
  • 2、请文明用语,共同创建干净的技术交流环境;
  • 3、若被发现提交非法信息,评论将会被删除,并且给予扣分处理,严重者给予封号处理;
  • 4、请勿发布广告信息或其他无关评论,否则将会删除评论并扣分,严重者给予封号处理。


扫码下载

加载中,请稍后...

输入口令后可复制整站源码

加载中,请稍后...