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