BitmapUtil.java 文件源码

java
阅读 34 收藏 0 点赞 0 评论 0

项目:RLibrary 作者:
/**
 * 获取压缩后的图片
 *
 * @param res
 * @param resId
 * @param reqWidth  所需图片压缩尺寸最小宽度
 * @param reqHeight 所需图片压缩尺寸最小高度
 * @return
 */
public static Bitmap decodeSampledBitmapFromResource(Resources res, int resId, int reqWidth, int reqHeight) {
    /**
     * 1.获取图片的像素宽高(不加载图片至内存中,所以不会占用资源)
     * 2.计算需要压缩的比例
     * 3.按将图片用计算出的比例压缩,并加载至内存中使用
     */
    // 首先不加载图片,仅获取图片尺寸
    final BitmapFactory.Options options = new BitmapFactory.Options();
    // 当inJustDecodeBounds设为true时,不会加载图片仅获取图片尺寸信息
    options.inJustDecodeBounds = true;
    // 此时仅会将图片信息会保存至options对象内,decode方法不会返回bitmap对象
    BitmapFactory.decodeResource(res, resId, options);

    // 计算压缩比例,如inSampleSize=4时,图片会压缩成原图的1/4
    options.inSampleSize = calculateInSampleSize(options, reqWidth, reqHeight);

    // 当inJustDecodeBounds设为false时,BitmapFactory.decode...就会返回图片对象了
    options.inJustDecodeBounds = false;
    options.inScaled = false;
    // 利用计算的比例值获取压缩后的图片对象
    return BitmapFactory.decodeResource(res, resId, options);
}
评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号