4

これをアプリケーションでサーフェス ビューとして使用していますが、プログラムでテキスト ビューを追加したいと考えています。どうやってやるの。

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

ありがとう......

4

3 に答える 3

17

オプションとして、2つの子を持つFrameLayoutを作成することもできます。最初は、SurfaceViewで、次に、SurfaceViewにオーバーレイするものを指定します。以下のサンプルでは、​​FrameLayoutの2番目のビューは、ボタンとTextViewを備えたhorozontilLinearLayoutです。FrameLayoutは、すべての子をZオーダーで積み上げて表示し、最初の子を下に、すべての子を左上隅に配置します。この場合、LinearLayoutにはGravity.CENTER_VERTICALがあります(LinearLayoutのパディングでも同じことができると思います。

SurfaceViews(または任意の画面描画)がどのように機能するかについて、多くの(優れた)ドキュメントを見つけたことがありません。ちらつきやリフレッシュに問題があるかもしれませんが、フローズンヨーグルトにはあまり問題はありません。(このテストアプリは、SurfaceViewのButtonとTextViewの下に「回転する」線を描画します。

ビューがオーバーレイされたSurfaceView

質問が単純な場合:XMLで膨らませたレイアウトによって作成されたレイアウトにTextViewをプログラムで追加するにはどうすればよいですか。次に、Layoutインスタンスへの参照を取得し、それにaddView()を呼び出します。

Layout lay = parentLayo.findViewById(R.id.drawingSurfaceParent);
TextView tv = new TextView(this);
tv.setText("New textview");
lay.addView(tv);
于 2011-02-10T01:54:49.570 に答える
7

Canvas と対応するテキスト描画メソッドを使用する必要があります。

drawText(String text, int index, int count, float x, float y, Paint paint) .

于 2011-01-20T16:52:06.547 に答える
3

これは不可能です。SurfaceView に他のビューを含めることはできません。

于 2011-01-20T16:45:01.767 に答える