【问题标题】:Adding text on top of an image using a Canvas - Android使用 Canvas 在图像上添加文本 - Android
【发布时间】:2012-08-14 16:47:27
【问题描述】:
我想在图片上添加一些文字。
我从 sd 卡读取图像并将其设置为 Bitmap 变量。
Bitmap myBitmap = BitmapFactory.decodeFile(imgFile.getAbsolutePath());
然后我将它添加到画布上。我使用的代码如下,
Canvas c = new Canvas(myBitmap);
但是当我添加这一行时,应用程序在那时崩溃了。为什么会这样,我该如何解决??
注意:上面提到的代码行在 onActivityResult 方法内。
【问题讨论】:
标签:
android
android-canvas
android-imageview
【解决方案1】:
您的应用程序崩溃是因为您的
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);