2011-01-13 3 views
3

Я использую этот вид поверхности в своем приложении, и теперь я хочу добавить текстовое представление к этому программно. Как я могу это сделать.Добавление текстового вида на вид поверхности

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

Благодаря ......

ответ

15

Опция может состоять в том, чтобы иметь FrameLayout с двумя детьми, сначала SurfaceView, затем все, что вы хотите наложить на SurfaceView. В приведенном ниже примере второй вид в FrameLayout представляет собой линейку LinearLayout с кнопкой и TextView. FrameLayout отображает все его дочерние элементы, сложенные в порядке Z, с первым ребенком внизу и всеми детьми, расположенными в верхнем левом углу. В этом случае LinearLayout имеет Gravity.CENTER_VERTICAL (я думаю, что вы могли бы сделать то же самое с дополнением на LinearLayout.

Я не нашел много (хорошей) документации о том, как работает SurfaceViews (или любой рисунок). Там может быть проблема с мерцанием или обновления, но я не вижу особых проблем в моем Froyo Эво. (Этот тест приложение рисует «накручивая» линии на SurfaceView ниже кнопки и TextView.

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); 
3

Это не возможно, SurfaceView не может содержать другие представления.

Смежные вопросы