使用Canvas - Android在图像顶部添加文本

时间:2012-08-14 16:47:27

标签: android android-canvas android-imageview

我想在图片上添加一些文字。 我从SD卡读取图像并将其设置为Bitmap变量。

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

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

Canvas c = new Canvas(myBitmap);

但是当我添加这一行时,应用程序就崩溃了。为什么,我怎么解决这个问题?

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

1 个答案:

答案 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);