从服务器获取到了itmap,然后想要在画板上进行查看并修改,就使用了mCanvas.setBitmap(mBitmap )语句,然后就报出 java.lang.IllegalStateException 这个错误,起初还不知道这是为什么,搞了一个晚上加一个早上,后来才发现问题如下:
mCanvas .setBitmap(mBitmap )会先判断bitmap.isMutable()是否为true,如果为false,就会抛出 java.lang.IllegalStateException异常。为什么呢?isMutable( )是易变的、可以修改的意思,而 mCanvas .setBitmap(mBitmap )语句在SDK中的解释是
可以很清楚地看出,此函数要求Bitmap变量是可变的。也就是说,这个Bitmap只能用来调用canvas.drawBitmap(mBitmap, 0, 0, mBitmapPaint);函数,而要想调用mCanvas .setBitmap(mBitmap )函数,则必须用可修改的Bitmap。
android 用Canvas 编辑图片报java.lang.IllegalStateException错的解决办法
最新推荐文章于 2020-09-12 17:14:49 发布