Android异常java.lang.IllegalStateException: Immutable bitmap passed to Canvas constructor

使用BitmapFactory的decodeResource方法需注意,不能直接修改res里面的图片,需要添加copy(Bitmap.Config.ARGB_8888,true)方法,否则会报以下异常:

Caused by: java.lang.IllegalStateException: Immutable bitmap passed to Canvas constructor

代码如下:

    private Bitmap getBitmap(Context context, int resId) {
        BitmapFactory.Options options = new BitmapFactory.Options();
        TypedValue value = new TypedValue();
        context.getResources().openRawResource(resId,value);
        options.inTargetDensity = value.density;
        options.inScaled = false;
        return BitmapFactory.decodeResource(context.getResources(),resId,options).copy(Bitmap.Config.ARGB_8888,true);
    }
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容