ホームページ  >  記事  >  ウェブフロントエンド  >  Canvas と Drawables の翻訳 エピソード 1

Canvas と Drawables の翻訳 エピソード 1

黄舟
黄舟オリジナル
2017-01-16 16:38:141469ブラウズ

Android 公式原文アドレス: http://developer.android.com/guide/topics/graphics/2d-graphics.html

-----以下の翻訳は分かりやすくするために私自身の考えを取り入れており、多くの箇所であまり適切ではないので、英語の原文を添えます

Canvas and Drawables の描画ボードと図面 (図面は伸縮可能な図面です)

この文書の中で

キャンバスで描画

ビュー上で
オンSurfaceView

Drawables

リソースから作成
画像
リソースから作成
XML

Shape Drawable
Nine-patch

関連項目

フレームワーク API を使用した OpenGL
RenderScript

Android フレームワーク API は、 2Dの- 独自のカスタム グラフィックをキャンバス上にレンダリングしたり、既存のビューを変更して外観をカスタマイズしたりできる描画 API は、
通常、次の 2 つの方法のいずれかで行います。
Android フレームワーク API が提供します。一連の 2D 描画 API を使用すると、独自のカスタム グラフィックス (グラフィックス) をキャンバス (キャンバス) にレンダリングしたり、既存のビュー (ビュー) を変更して効果やエクスペリエンスをカスタマイズしたりできます。 2D グラフィックスを描画する場合、一般に 2 つの方法があります:

レイアウトから View オブジェクトにグラフィックスまたはアニメーションを描画する この方法では、グラフィックスの描画はシステムの通常の View 階層描画プロセスによって処理されます。グラフィックスをビュー内に配置します。
レイアウト ファイルを通じてグラフィックスまたはアニメーションを View オブジェクトに描画します。このように、グラフィックスの描画は、システムの通常のビューレベルの描画プロセスによって処理されます。グラフィックスをビューに定義するだけです。このメソッドはおそらく、xml で定義された背景画像または ImageView の src 属性を参照します。
グラフィックを Canvas に直接描画します。この方法では、適切なクラスの

onDraw()

メソッド

(Canvas に渡す) を呼び出すか、Canvas

draw...()

のいずれかを制御します。このメソッドでは、適切なクラスの onDraw() メソッドを個人的に呼び出すか (Canvas を渡す)、または Canvas 描画を行う必要があります。 () メソッドの 1 つ (drawPicture() など)。これにより、任意のアニメーションを制御することもできます。


オプション "a" (ビューへの描画) は、動的に変更する必要がなく、パフォーマンスを重視するゲームの一部ではない単純なグラフィックを描画する場合に最適です。たとえば、
グラフィックを描画する必要があります。静的なグラフィックまたは事前定義されたアニメーションをビューに表示する場合は、それ以外の場合は静的なアプリケーション内でドローアブルを参照してください。
オプション a、単純なグラフィック (グラフィックス) を描画する場合、グラフィックは必要ありません。動的に変更するか、パフォーマンスを向上させるゲームの一部ではない場合、現時点では、グラフィックスをビューに描画することが最善の選択です。たとえば、静的なグラフィックまたは事前定義されたアニメーションを表示したい場合は、グラフィックをビューに描画する必要があります。
オプション "b" (キャンバスへの描画) は、アプリケーションが定期的に再描画する必要がある場合に適しています。ただし、これを行う方法は複数あります。 :
オプション b、アプリケーションが時間通りに再描画する必要がある場合は、キャンバスに描画する方が良い選択です。たとえば、ビデオ ゲーム アプリケーションはアートボードに描画する必要があります。とにかく、これを行う方法はたくさんあります。

UI アクティビティと同じスレッドで、レイアウト内にカスタム View コンポーネントを作成し、

invalidate()

を呼び出し、
onDraw()

コールバックを処理します。

UI アクティビティと同じスレッドで、カスタム View コンポーネントをレイアウトに追加し、invalidate() メソッドを呼び出してから、onDraw() コールバックを処理します。

または、別のスレッドで、

SurfaceView

を管理し、スレッドが可能な限り高速に Canvas への描画を実行します (リクエスト

invalidate()

を行う必要はありません)。そこでは、SurfaceView を管理して描画します。グラフィックをできるだけ早く Canvas に追加します (Invalidate() をリクエストする必要はありません

)。

上記は Canvas と Drawables の翻訳の第 1 話の内容です。その他の関連コンテンツについては、PHP 中国語 Web サイト (www.php.cn) をご覧ください。


声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。