如何在android ..上画布上的TextView ..?

问题描述:

如何在android ..上画布上的TextView ..?如何在android ..上画布上的TextView ..?

我们有Canvas.DrawBitmap()Canvas.drawText()。我们是否在Canvas中有将TextView作为参数或任何其他方法在Canvas上显示TextView的方法?

其实,我在TextView中有一个字母表,我必须在画布上绘制该字母表。

请建议什么....谢谢您的合作

可能是你需要使用StaticLayout。它可以绘制格式化文本,管理文字换行等。看看http://developer.android.com/reference/android/text/StaticLayout.html

您不能直接绘制Textview,但可以将其放入布局并绘制布局。类似这样的:

LinearLayout layout = new LinearLayout(context); 

TextView textView = new TextView(context); 
textView.setVisibility(View.VISIBLE); 
textView.setText("Hello world"); 
layout.addView(textView); 

layout.measure(canvas.getWidth(), canvas.getHeight()); 
layout.layout(0, 0, canvas.getWidth(), canvas.getHeight()); 

// To place the text view somewhere specific: 
//canvas.translate(0, 0); 

layout.draw(canvas); 
+2

关于measure()调用,我使用MeasureSpec.makeMeasureSpec(canvas.getWidth(),MeasureSpec.EXACTLY)代替canvas.getWidth()(高度相同)。 – 2012-06-12 11:33:50

+0

@emidander非常感谢好友 – Palanivelraghul 2017-10-27 09:53:30

+0

是否可以让TextView点击?我添加了一个onClickListener,但它似乎没有工作。 – user3667569 2018-02-18 19:45:21

您需要创建一个扩展Textview的类。之后,重写onDraw方法。这个方法可以让你以你喜欢的方式绘制你的textview