将文本视图添加到曲面视图

时间:2011-01-13 13:56:55

标签: android layout textview surfaceview

我在我的应用程序中使用这个表面视图,现在我想以编程方式添加文本视图。我怎么能这样做。

"<com.csfcse.udrawer.UdrawerDrawingSurface
  android:layout_width="fill_parent" 
  android:layout_height="fill_parent"
  android:id="@+id/drawingSurface" 
        android:layout_gravity="left" />"

感谢......

3 个答案:

答案 0 :(得分:16)

一个选项可能是让FrameLayout有两个子节点,首先是SurfaceView,然后是你想要在SurfaceView上叠加的任何内容。在下面的示例中,FrameLayout中的第二个视图是带有Button和TextView的horozontil LinearLayout。 FrameLayout将所有子项显示为按Z顺序堆叠,第一个子项位于底部,所有子项位于左上角。在这种情况下,LinearLayout具有Gravity.CENTER_VERTICAL(我认为你可以在LinearLayout上使用填充做同样的事情。

我从来没有找到很多关于SurfaceViews(或任何屏幕绘图)工作原理的文档。闪烁或刷新可能有问题,但我在Froyo Evo上看不到太多问题。 (此测试应用程序在Button和TextView下面的SurfaceView上绘制'旋转'线。

SurfaceView with views overlaying it

如果问题很简单:如何以编程方式将TextView添加到由XML膨胀的布局创建的布局中,然后获取对布局实例的引用并向其调用addView()。

Layout lay = parentLayo.findViewById(R.id.drawingSurfaceParent);
TextView tv = new TextView(this);
tv.setText("New textview");
lay.addView(tv);

答案 1 :(得分:7)

您需要使用Canvas和相应的文本绘制方法:

drawText(String text, int index, int count, float x, float y, Paint paint)

答案 2 :(得分:3)

这是不可能的,SurfaceView不能包含其他视图。