ホームへ戻る

4.3 四角形を描く


本節では四角形を描画する drawRect を紹介します。
また、並行して
・中を塗りつぶさない方法
・アンチエイリアス有効
・端の円い四角形の描画方法
もご紹介します。
paintに設定している処理はしなくても描画出来ます。
設定するごとに設定値が増えて複雑な描画ができるようになるだけです。



public class AndroidsCastleActivity extends Activity {

        protected void onCreate(Bundle savedInstanceState) {
                super.onCreate(savedInstanceState);
                setContentView(new MyView(this));
        }

        class MyView extends View {

                public MyView(Context context) {
                        super(context);
                }

                @Override
                protected void onDraw(Canvas canvas) {
                        Paint paint = new Paint();
                        
                        paint.setStrokeWidth(2);//太さを2に
                        
                        paint.setColor(Color.argb(255, 255, 0, 0));//赤セット
                        canvas.drawRect(0, 0, 100, 100, paint);//四角形描画
                        
                        paint.setStyle(Paint.Style.STROKE);//中を塗りつぶさない設定に

                        paint.setAntiAlias(true);//アンチエイリアス有効に
                        paint.setColor(Color.argb(255, 255, 255, 0));//黄色セット
                        canvas.drawRoundRect(new RectF(100, 100, 200, 200), 20, 20, paint);//端円い四角形描画
                }

        }
}


drawRectメソッドが四角形を描画するメソッドです。
引数が多くて面倒な人は、
drawRect( new Rect(0, 0, 100, 100), paint );
で呼び出すこともできます。

paintのスタイルに Paint.Style.STROKE をセットすることで、中の塗りつぶしが無くなります。

また、今回アンチエイリアスを有効にしてみました。
アンチエイリアスとは、輪郭がギザギザにならないように自動的に境界を補間する処理のことです。
四角形の角が滑らかになっているのが分かるでしょうか。

アンチエイリアス有りと無しを比較しました。



左の方が綺麗ですね。

この角が円い四角形は
drawRoundRectメソッドで描画しています。

drawRoundRect( 領域, 角の弧水平直径, 角の弧鉛直直径, paint );

となっています。"領域"の部分は x, y, w, h でもいいので

drawRoundRect( x, y, w, h, 角の弧水平直径, 角の弧鉛直直径, paint );

でもOKです。

詳細はリファレンスをどうぞ。

→分からないことがあれば掲示板で質問して下さい


Portions of this page are modifications based on work created and shared by Google and used according to terms described in the Creative Commons 3.0 Attribution License.

- Remical Soft -