0

ユーザーがオプションを選択した場合に画像をレンダリングする必要があるアプリを作成しています。画像はデータ ファイルを読み取り、データ ファイルの内容に応じて、適切な量の四角形、線、およびテキストをレンダリングします (データを視覚化しています)。このサイトの Drawables または Canavsを読みましたが、それを正しく理解していれば、drawables を使用する必要があると書かれています。しかし、私が理解していない (どこにあるかわからなかったり、見逃していた) のは、図形を描画するスペースを定義する場所です。データを読み取るまで、図形の数がわからないため、視覚化全体のサイズがわからないためです。ファイルに必要な合成画像のサイズ (すべての形状と線をレンダリングするために必要なサイズ) がわかりません。

そこで、質問が 3 つあります。

必要なことを達成するためにドローアブルを使用する必要がありますか? メソッドは、作業中のビジュアライゼーションの「サイズ」を定義しますか?mDrawable.setBounds線を描画して、ドローアブルでテキストを挿入できますか?

4

1 に答える 1

0

Drawable を表示するには、ソースが Drawable に設定された ImageView を使用するか、背景が Drawable に設定された他の UI コンポーネントを使用するか、独自のカスタム UI View の onDraw メソッドをオーバーライドして Drawable#draw( Canvas) を呼び出して Drawable をキャンバスに描画し、そのキャンバスを使用してビュー自体を描画します。Drawable#setBounds メソッドは、Drawable#draw メソッドが描画するキャンバス上の場所を定義します。

通常、あなたの状況では、 Drawable はまったく使用されません。代わりに、View をサブクラス化し、onDraw(Canvas) をオーバーライドし、Canvas オブジェクトで直接描画呼び出しを行います。このオブジェクトには、drawBitmap、drawLines、drawText などのメソッドがあり
ます。グラフィックス.ペイント)

于 2013-02-27T02:46:09.417 に答える