如何在Android中在画布(Canvas)上绘制TextView?
我们有Canvas.DrawBitmap()
、Canvas.drawText()
等方法。但是,是否有一种将TextView作为参数的方法或其他方法可以在画布上显示TextView呢?
实际上,我有一个包含字母的TextView,并且我需要在该字母上进行绘制,这个字母在画布上。
请提供建议... 感谢您的合作。
如何在Android中在画布(Canvas)上绘制TextView?
我们有Canvas.DrawBitmap()
、Canvas.drawText()
等方法。但是,是否有一种将TextView作为参数的方法或其他方法可以在画布上显示TextView呢?
实际上,我有一个包含字母的TextView,并且我需要在该字母上进行绘制,这个字母在画布上。
请提供建议... 感谢您的合作。
你无法直接绘制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);
也许你需要使用StaticLayout
。它可以绘制格式化文本,管理换行等等。请查看http://developer.android.com/reference/android/text/StaticLayout.html