我正在尝试从资源中获取位图,向其中添加文本消息并将其返回给方法的调用者。似乎Canvas可能是方法,但下面的代码不起作用。
public Bitmap annotateBmp(String storyId) {
Bitmap b = BitmapFactory.decodeResource(m_Context.getResources(), R.drawable.candle_android_pin_512);
Canvas c = new Canvas(b);
Paint p = new Paint();
p.setColor(R.color.red);
c.drawText("Do you see this?", 30, 210, p);
return b; //Why does b not have the text?
}
我错过了一步还是有更好的方法?
答案 0 :(得分:2)
我尝试了你的代码并在第一行崩溃了。 因为位图是不可变的,所以我必须添加一行来创建一个可变的位图。
b = b.copy(Bitmap.Config.ARGB_8888, true);
然后,你的代码工作正常。你没有指定textSize,但这不是原因。我想可能是文本的原点坐标不在位图中,所以你看不到文字。