一个选项可能是有一个带有两个孩子的 FrameLayout,首先是 SurfaceView,然后是您想要覆盖在 SurfaceView 上的任何内容。在下面的示例中,FrameLayout 中的第二个 View 是带有 Button 和 TextView 的 horozontil LinearLayout。FrameLayout 将其所有子项按 Z 顺序显示,第一个子项位于底部,所有子项位于左上角。在这种情况下,LinearLayout 具有 Gravity.CENTER_VERTICAL (我认为您可以对 LinearLayout 上的填充做同样的事情。
我从来没有找到关于 SurfaceViews(或任何屏幕绘图)如何工作的很多(好的)文档。闪烁或刷新可能存在问题,但我在 Froyo Evo 上没有发现太多问题。(此测试应用程序在 Button 和 TextView 下方的 SurfaceView 上绘制“旋转”线。
如果问题很简单:如何以编程方式将 TextView 添加到由 XML 膨胀布局创建的布局中,然后,获取对 Layout 实例的引用并调用 addView() 。
Layout lay = parentLayo.findViewById(R.id.drawingSurfaceParent);
TextView tv = new TextView(this);
tv.setText("New textview");
lay.addView(tv);