libro
www.tuyano.com
Google androidプログラミング入門

グラフィックを描こう! (4/9)

作成:2009-12-28 13:31
更新: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で設定された内容にしたがって図形が描画されます。

※プログラムリストが表示されない場合

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);
}
※関連コンテンツ

「Google androidプログラミング入門」に戻る