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

黄舟
リリース: 2017-01-16 16:47:02
オリジナル
1235 人が閲覧しました


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

------以下の翻訳は私自身の考えを取り入れており分かりやすいです, 多くのローカル翻訳はあまり適切ではないため、英語の原文を添付します

[title3]
ビューコンポーネント(View)のView上[/title3]

アプリケーションが大量のデータを必要としない場合処理速度やフレームレート速度 (おそらくチェス ゲーム、スネーク ゲーム、またはその他のゆっくりとしたアニメーションのアプリケーションの場合) を考慮した場合は、カスタム View コンポーネントを作成し、

View.onDraw()
ログイン後にコピー

で Canvas

を使用して描画することを検討する必要があります。そうする際の便利な点は、Android フレームワークが、描画呼び出しを行う事前定義された Canvas を提供することです。

アプリケーションが多くの処理を必要としない場合、またはボードなどのフレーム レート要件がない場合ゲーム、ヘビ、または遅いアニメーション アプリケーションの場合は、カスタム ビュー コンポーネント (View) を作成し、キャンバス (Canvas) を使用して View.onDraw() メソッドで描画することを検討できます。これを行う際の最も便利な点は、Android フレームワーク レイヤーによって、描画に使用できる事前定義されたアートボード (キャンバス) が提供されることです。

まず、

View
ログイン後にコピー
ログイン後にコピー

クラス (またはその子孫

) を拡張し、

onDraw()
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー

callback

メソッドを定義して、ビュー自体の描画をリクエストします。描画するためのすべての呼び出しは、

Canvas
ログイン後にコピー

を通じて渡されます。

onDraw()
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー

コールバックを通じて渡されます。


まず、View クラス (またはサブクラス) を継承し、onDraw() コールバック メソッドを定義します。このメソッドは Android フレームワーク レイヤーによって呼び出され、ビュー自体が描画されます。ここで、必要なすべての描画呼び出しが実行され、Canvas が onDraw() コールバック メソッドを通じて渡されます。

Android フレームワークは、必要に応じてのみ

onDraw()
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー

を呼び出します。アプリケーションの描画の準備が整うたびに、

invalidate()
ログイン後にコピー

を呼び出してビューを無効にするように要求する必要があります。これは、ビューを無効にすることを要求することを示します。描画されると、Android はあなたの

を呼び出します

onDraw()
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー

method (though is not guaranteed that the callback will be instantaneous).

Android框架层只会在需要的时候调用onDraw()方法。每次当你的应用准备好需要去绘制的时候,你必须通过invalidate()方法使你的View无效。这表示你想要你的View被绘制并且Android将要回调你的onDraw()方法(不保证这个回调将会被及时执行)

Inside your View component's

onDraw()
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー

, use the Canvas given to you for all your drawing, using various

Canvas.draw...()
ログイン後にコピー

methods,
or other class

draw()
ログイン後にコピー

methods that take your Canvas as an argument. Once your

onDraw()
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー

is complete, the Android
framework will use your Canvas to draw a Bitmap handled by the system.

在你的View组件里的onDraw()方法中,使用给你的Canvas作你所有的绘制,使用各种各样的Canvas.draw...()方法,或者其他类的Draw()方法,这个类能够把给你的Canvas作为参数传入。一旦你的onDraw()方法完成,Android框架将要用你的Canvas去绘制一张位图。

Note: In order to request an invalidate from a thread other than your main Activity's thread, you must call

postInvalidate()
ログイン後にコピー

.

For information about extending the

View
ログイン後にコピー
ログイン後にコピー

class,
read Building Custom Components.

注意:你如果要从主Activity的线程外的线程中使View无效,你必须调用postInvalidate()方法,更多关于继承View类的信息,请阅读Building
Custom Components。

For a sample application, see the Snake game, in the SDK samples folder:

<your-sdk-directory>/samples/Snake/
ログイン後にコピー
ログイン後にコピー

.

一个程序示例,贪吃蛇游戏,放在SDK示例文件夹中,路径:

<your-sdk-directory>/samples/Snake/
ログイン後にコピー
ログイン後にコピー

以上就是Canvas and Drawables 翻译第三集的内容,更多相关内容请关注PHP中文网(www.php.cn)!


関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート