Может быть вариант иметь FrameLayout с двумя дочерними элементами, сначала SurfaceView, а затем все, что вы хотите наложить на SurfaceView.В приведенном ниже примере вторым представлением в FrameLayout является horozontil LinearLayout с кнопкой и TextView.FrameLayout отображает все свои дочерние элементы в виде стопки в Z-порядке с первым дочерним элементом внизу и всеми дочерними элементами, расположенными в верхнем левом углу.В этом случае LinearLayout имеет Gravity.CENTER_VERTICAL (я думаю, вы могли бы сделать то же самое с заполнением для LinearLayout.
Я никогда не находил много (хорошей) документации о том, как SurfaceViews (или любой другой рисунок экрана)может быть проблема с мерцанием или обновлением, но я не вижу особых проблем на моем Froyo Evo. (Это тестовое приложение рисует «закрученные» линии на SurfaceView под Button и TextView.
Если вопрос прост: как программно добавить TextView в Layout, который был создан с использованием раздуваемого XML макета, затем получить ссылку на экземпляр Layout и вызвать для него addView ().
Layout lay = parentLayo.findViewById(R.id.drawingSurfaceParent);
TextView tv = new TextView(this);
tv.setText("New textview");
lay.addView(tv);