【问题标题】:Adding text to a bitmap in memory in Android在Android中将文本添加到内存中的位图
【发布时间】:2011-11-03 07:29:48
【问题描述】:

我正在尝试从资源中获取位图,向其中添加文本消息并将其返回给方法的调用者。看起来 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?
}

是我遗漏了一步还是有更好的方法?

【问题讨论】:

  • 在draw() @override 方法中做canvas.drawText()。试过了吗?

标签: android graphics canvas bitmap


【解决方案1】:

我尝试了您的代码并在第一行崩溃。 由于位图是不可变的,所以我必须添加一行来创建可变位图。

b = b.copy(Bitmap.Config.ARGB_8888, true);

那么,您的代码就可以正常工作了。您没有指定 textSize,但这不是原因。我想可能是文本的原点坐标不在位图中所以你看不到文本。

【讨论】:

  • 感谢费伦!那成功了。我在工作的上下文中有一个可变字体,但默认字体太小,我无法轻易看到!
猜你喜欢
  • 2015-11-09
  • 2014-11-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-08-04
  • 2013-10-09
  • 1970-01-01
  • 2012-01-03
相关资源
最近更新 更多