美文网首页
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