我试图使用setBitMap
将位图图像设置为画布,当时我遇到了IllegalStateException。此画布上当前有一些图像,我正在尝试替换它。
有人知道为什么会这样吗?
代码片段
editBm = Bitmap.createBitmap(951, 552, Bitmap.Config.ARGB_8888);
Canvas mCanvas=new Canvas(editBm);
eBit=LoadBMPsdcard(filePath); ---->returns a bitmap when the file path to the file is provided
Log.i("BM size", editBm.getWidth()+"");
mCanvas.setBitmap(eBit);
我没有收到任何空指针错误,并且方法
LoadBMPsdcard()
运行良好。请告诉我你有什么想法…
提前谢谢
快乐编码
最佳答案
可能引发IllegalStateException,因为您正在加载位图(EBIT)并使用mCanvas.setBitmap(eBit)
,而不检查位图是否可变。在位图上绘制时需要这样做。要确保位图是可变的,请使用:
eBit=LoadBMPsdcard(filePath);
Bitmap bitmap = eBit.copy(Bitmap.Config.ARGB_8888, true);
canvas.setBitmap(bitmap);