【问题标题】:Drawing a bitmap to the canvas of a text-view在文本视图的画布上绘制位图
【发布时间】:2014-01-14 21:29:43
【问题描述】:

我有一个文本视图和一个位图。 现在,我想在文本视图的画布上绘制这个位图。 有什么方法可以获得文本视图的画布,将位图绘制到上面?

我知道,我可以通过将位图包装到 bitmapdrawable 中来实现类似的结果,并将文本视图的背景设置为此 bitmapdrawable,如下所示: textView.setBackground(new BitmapDrawable(getResources(), bitmap)); 这个操作需要在UI交互时进行,所以我不想这样做,因为它每次都需要创建一个bitmapdrawable对象,&android不建议在UI交互时创建对象。

任何人都可以建议一些其他方法来实现类似的结果,这具有最少的开销。 或者无论如何我可以获得我正在处理的文本视图对象的画布并直接将位图绘制到它上面?

如果有人以前在这方面工作过,请帮忙!

【问题讨论】:

  • 您是否尝试过覆盖文本视图的 onDraw 方法?您可以在画布上绘制位图。
  • @Ercan 我需要扩展 textview 类来实现这一点,正如 Rajesh CP 所建议的那样,但我不想这样做,因为我正在处理使用文本视图对象的遗留代码。你知道有什么其他方法,我可以实现这个吗?

标签: android performance optimization bitmap android-canvas


【解决方案1】:

extendTextViewClassoverrideonDraw 方法

Protected void onDraw(Canvas canvas){
    super.onDraw(canvas);
}

没有测试出代码。但这将是我将要采用的方式。

【讨论】:

  • 是的,我认为我们可以这样做,但问题是 - 我正在使用使用文本视图的遗留代码,我不想将其更改为使用在代码中随处可见扩展的文本视图类对象,因为这将是一个巨大的变化。有没有其他办法,我可以处理这个?
  • 这并不能真正回答问题。如果你扩展 TextView 并覆盖 onDraw,你将绘制没有任何文本的位图。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-01-06
  • 2015-11-03
  • 1970-01-01
相关资源
最近更新 更多