Добавление текстового представления к поверхностному виду - PullRequest
3 голосов
/ 13 января 2011

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

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

Спасибо ......

Ответы [ 3 ]

16 голосов
/ 10 февраля 2011

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

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

SurfaceView with views overlaying it

Если вопрос прост: как программно добавить TextView в Layout, который был создан с использованием раздуваемого XML макета, затем получить ссылку на экземпляр Layout и вызвать для него addView ().

Layout lay = parentLayo.findViewById(R.id.drawingSurfaceParent);
TextView tv = new TextView(this);
tv.setText("New textview");
lay.addView(tv);
7 голосов
/ 20 января 2011

Вам потребуется использовать Canvas и соответствующий метод рисования текста:

drawText (текст строки, индекс int, число int, число с плавающей точкой x, число с плавающей точкой y, краска Paint) .

3 голосов
/ 20 января 2011

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

...