如何在Android中的Canvas上绘制TextView?

时间:2011-03-09 07:44:47

标签: android

如何在Android中的Canvas上绘制TextView??

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

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

请提出建议....感谢您的合作

3 个答案:

答案 0 :(得分:47)

您无法直接绘制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);

答案 1 :(得分:1)

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

答案 2 :(得分:0)

您需要创建一个扩展Textview的类。之后重写onDraw方法。此方法可让您以您喜欢的方式绘制文本视图