1

キャンバスTextViewに追加することは可能ですか?ImageView

4

4 に答える 4

2

Canvas は ViewGroup を継承しないため、子ビューを追加する機能がありません。

Canvas では、TextView や ImageView などの子コントロールを追加する代わりに、drawBitmap メソッドと drawText メソッドを使用して画像やテキストを描画します。

于 2010-10-19T09:40:47.500 に答える
2

回り道ですが、このチュートリアルではキャンバスにテキストビューを追加します。

http://www.helloandroid.com/tutorials/how-draw-multiline-text-canvas-easyly

于 2011-11-29T21:13:51.510 に答える
0

- ビュー (キャンバスを使用している) を RelativeLayout 内に配置します。

public class YourComponent extends View{
@Override
protected void onDraw(Canvas canvas)

...

public void onDraw(){
....
....
ImageView yourImageView = .....

RelativeLayout.LayoutParams fParams = new RelativeLayout.LayoutParams(25,25);
fParams.leftMargin = 100; //x coordinate
fParams.topMargin  = 25;  /y coordinate
yourImageView.setLayoutParams(fParams);
((RelativeLayout) YourComponent.this.getParent()).addView(yourImageView);

}

}

上記のコード: ビューの 25x25 の寸法を示すレイアウト パラメータを作成しました。その後、マージンを使用して親レイアウトの適切な位置を設定しました。この LayoutParams を ImageView に設定します。そして最後に、このimageViewを親レイアウトに追加しました。

ただし、onDraw() の実行中に外部ビューで操作を呼び出すと、onDraw() が停止する可能性があることに注意してください。したがって、この方法を使用する場合は、すべての onDraw 操作が完了していることを確認してください。なぜこれが起こるのかよくわかりません。私はまだそれについてあまり観察しようとしませんでした。

于 2012-12-24T16:00:54.363 に答える
0

ImageView と TextView を自由に配置する必要がある場合は、RelativeLayout を使用する必要があります。

RelativeLayout には高度な配置機能があり、オーバーラップが可能です。

于 2010-10-19T10:08:10.903 に答える