美文网首页
Bimap设置宽高时出现,报错

Bimap设置宽高时出现,报错

作者: 撩人的风光 | 来源:发表于2020-08-04 19:21 被阅读0次

当项目工程需要对bitmap进行动态的改变宽度和高度时,代码如下:

Bitmap bitmap = BitmapFactory.decodeResource(getResources(), normalId);

bitmap.setWidth(30);

bitmap.setHeight(30);

这样在代码执行到这里的时候可能出现异常IllegalStateException: only mutable bitmaps may be reconfigured

解决方法就是,对bitmap重新计算压缩比,然后重新生成bitmap对象

代码如下:

public Bitmap alterSizeBitmap(Bitmap bitmap,int newWidth,int newHeight) {

    //计算压缩的比率

    float scaleWidth = ((float) newWidth) / bitmap.getWidth();

    float scaleHeight = ((float) newHeight) / bitmap.getHeight();

    //获取想要缩放的matrix

    Matrix matrix =new Matrix();

    matrix.postScale(scaleWidth, scaleHeight);

    //获取新的bitmap

    return Bitmap.createBitmap(bitmap,0,0, bitmap.getWidth(), bitmap.getHeight(), matrix,true);

}

相关文章

网友评论

      本文标题:Bimap设置宽高时出现,报错

      本文链接:https://www.haomeiwen.com/subject/hltgrktx.html