我想在图片上添加一些文字。 我从SD卡读取图像并将其设置为Bitmap变量。
Bitmap myBitmap = BitmapFactory.decodeFile(imgFile.getAbsolutePath());
然后我把它添加到画布上。我使用的代码如下,
Canvas c = new Canvas(myBitmap);
但是当我添加这一行时,应用程序就崩溃了。为什么,我怎么解决这个问题?
注意:上面提到的代码行在onActivityResult
方法中。
答案 0 :(得分:0)
你的应用程序崩溃,因为你的
BitmapFactory.decodeFile
返回一个不可变的位图,而public Canvas (Bitmap bitmap)
只接受一个可变的位图。
要解决您的问题,您必须将不可变的位图转换为可变的see here the method
如果您只定位> = API 11,则可以使用
final BitmapFactory.Options options = new BitmapFactory.Options();
options.inMutable = true;
Bitmap myBitmap = BitmapFactory.decodeFile(imgFile.getAbsolutePath(), options);