0

我想在图像顶部添加一些文本。我从 sd 卡读取图像并将其设置为 Bitmap 变量。

Bitmap myBitmap = BitmapFactory.decodeFile(imgFile.getAbsolutePath());

然后我将它添加到画布上。我使用的代码如下所示,

Canvas c = new Canvas(myBitmap);

但是当我添加这一行时,应用程序在那时崩溃了。为什么会这样,我该如何解决?

注意:上面提到的代码行在onActivityResult方法内部。

4

1 回答 1

0

您的应用程序崩溃是因为您的

BitmapFactory.decodeFile

返回一个不可变位图并且public Canvas (Bitmap bitmap)只接受一个可变位图。

要解决您的问题,您必须将不可变位图转换为可变的,请参见此处的方法

如果您只定位 >= API 11 ,您可以使用

final BitmapFactory.Options options = new BitmapFactory.Options();
options.inMutable = true;
Bitmap myBitmap = BitmapFactory.decodeFile(imgFile.getAbsolutePath(), options);
于 2012-08-14T17:32:54.790 回答