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

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

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


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)!


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