我试图使用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);

10-07 18:47