如何在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);
答
您需要创建一个扩展Textview的类。之后,重写onDraw方法。这个方法可以让你以你喜欢的方式绘制你的textview
关于measure()调用,我使用MeasureSpec.makeMeasureSpec(canvas.getWidth(),MeasureSpec.EXACTLY)代替canvas.getWidth()(高度相同)。 – 2012-06-12 11:33:50
@emidander非常感谢好友 – Palanivelraghul 2017-10-27 09:53:30
是否可以让TextView点击?我添加了一个onClickListener,但它似乎没有工作。 – user3667569 2018-02-18 19:45:21