グラフィックを描こう! (4/9)
作成:2009-12-28 13:31
更新:2010-05-11 14:32
更新:2010-05-11 14:32
■onDrawメソッドを見てみよう
では、肝心の描画処理を行っている「onDraw」メソッドを見てみましょう。ここでは、Canvasインスタンスが引数に渡されており、このCanvasにあるメソッドを呼び出して描画を行います。が、この他にも、描画を行う上で必要なクラスがいくつが登場します。ここで整理しておきましょう。
Colorクラス
色の値に関するクラスです。JavaのAWTなどでは色はjava.awt.Colorクラスとして扱われますが、androidの場合、ColorはColorでも「android.graphics.Color」というものです。これは、主な色の値をクラスフィールドとしてもっており、またRGBなどの輝度を指定して色の値を取得することもできます。
つい勘違いしてしまいがちですが、androidでは色の値は「Colorインスタンス」ではありません。色の値は、単なるint値です。Colorは主な色のint値を用意したり、指定した色のint値を取り出したりする機能を提供するだけです。Colorクラスそのものが色の値というわけではありません。
Paintクラス
これは、図形を描画する際のさまざまな属性を管理するクラスです。例えば塗りつぶしのパターンや塗りつぶすスタイル、使用する色などといった値がこのクラスで管理されます。
androidで描画を行う際には、まずこのPaintインスタンスを用意し、そこに描画に必要なさまざまな値を設定します。そして、描画メソッドを呼び出す際に、このPaintを引数に渡すのです。これにより、Paintで設定された内容にしたがって図形が描画されます。
Colorクラス
色の値に関するクラスです。JavaのAWTなどでは色はjava.awt.Colorクラスとして扱われますが、androidの場合、ColorはColorでも「android.graphics.Color」というものです。これは、主な色の値をクラスフィールドとしてもっており、またRGBなどの輝度を指定して色の値を取得することもできます。
つい勘違いしてしまいがちですが、androidでは色の値は「Colorインスタンス」ではありません。色の値は、単なるint値です。Colorは主な色のint値を用意したり、指定した色のint値を取り出したりする機能を提供するだけです。Colorクラスそのものが色の値というわけではありません。
Paintクラス
これは、図形を描画する際のさまざまな属性を管理するクラスです。例えば塗りつぶしのパターンや塗りつぶすスタイル、使用する色などといった値がこのクラスで管理されます。
androidで描画を行う際には、まずこのPaintインスタンスを用意し、そこに描画に必要なさまざまな値を設定します。そして、描画メソッドを呼び出す際に、このPaintを引数に渡すのです。これにより、Paintで設定された内容にしたがって図形が描画されます。
(by. SYODA-Tuyano.)
※プログラムリストが表示されない場合
AddBlockなどの広告ブロックツールがONになっていると、プログラムリスト等が表示されない場合があります。これらのツールをOFFにしてみてください。
●プログラム・リスト●
public void onDraw(Canvas c) { c.drawColor(Color.BLACK); Paint fill_paint = new Paint(); fill_paint.setStyle(Paint.Style.FILL); fill_paint.setColor(Color.BLUE); c.drawRect(100f, 100f, 200f, 200f, fill_paint); fill_paint.setColor(Color.RED); c.drawOval(new RectF(0f, 0f, 100f, 100f), fill_paint); }
※関連コンテンツ