android Immutable bitmap passed to Canvas const...

今天使用bitmap直接加载sdcard里面的图片,报了如下错误:

 09-10 09:09:23.593: E/AndroidRuntime(11204): 

java.lang.RuntimeException: 

Unable to start activity ComponentInfo{com.czld/com.czld.activity.OneLayoutActivity}: 

java.lang.IllegalStateException

Immutable bitmap passed to Canvas constructor

所以就去网上搜索,知道了错误的原因是如果不用copy的方法,直接引用会对资源文件进行修改,而android是不允许在代码里修改res文件里的图片

BitmapFactory.decodeResource(getResources(), R.drawable.xiao);

Bitmap bitmap=BitmapFactory.decodeFile(tabBtn.getTitle_path());

以上都是错误的,下面的才是正确的

BitmapFactory.decodeResource(getResources(), R.drawable.xiao).copy(Bitmap.Config.ARGB_8888, true);

Bitmap bitmap=BitmapFactory.decodeFile(tabBtn.getTitle_path()).copy(Bitmap.Config.ARGB_8888, true);

如果你也遇到了这种错误,希望本文对你有帮助!

你可能感兴趣的:(TO,android,加载,bitmap,bitmap,canvas,immutable,constructor异常,passed)