図形を描画するために Canvas と Paint クラスがあります。Canvas は絵を描くカンバスです、円や矩形などの図形をこれで設定します。
2024.1.1
Canvas
さてCanvasとは何でしょうか?GoogleはAndroidフレームワークとしてグラフィックスにおいては2つの方法を提供しています。
- Drawables
- 画像などをViewを使って表示。静的で表示させるだけの用途であり、アニメーションでも決まりきった動きのものに適している
パフォーマンスを必要とするようなゲームにはあまり向かない - 代表的な例は、画像をresourceのdrawableにおいてImageViewを使って表示するような例。
- 画像などをViewを使って表示。静的で表示させるだけの用途であり、アニメーションでも決まりきった動きのものに適している
- Canvas
- onDrawメソッドを使ってCanvas上で描画。ゲームなどの動きがありグラフィックスのredrawが頻繁に起きる場合や、カスタマイズされたアニメーションに向いている
Ref: Canvas and Drawables
ゲームのようなものでなければDrawablesを使えばそこそこできますが、どうしてもカスタム化して動きを入れたいというような場合ではCavasを使います。
Canvasの基本的な形
Canvasでprimitiveな矩形を描画する基本的な例です。
Activity から View を継承したクラスを作りsetContentViewに入れてonDraw() で描画します。setContentView(MyView)
レイアウトファイルは使いません。
MainActivity.java
矩形が描画されました。
矩形の描画では
Paint クラスの
setColor で線の色を指定
setStrokeWidth にて線の太さ
Canvas クラスの
drawRect を使って4つの頂点を引数に入れます。
サンプルコード
矩形以外にも円、楕円のような基本的なprimitiveな図形を描画するメソッドもあります。またラインを組み合わせて三角形を作ることもできます。
MainActivity.java
ここで指定している(x,y)はピクセルになりますので端末依存です。スクリーン縦横のサイズを取得して計算する必要があります。
Kotlinで書くと
https://akira-watson.com/android/kotlin/canvas.html
- 関連ページ
- Canvas と Paint で円や矩形を描く
- Custom Canvas をレイアウトに挿入する
- Canvas を Clear して再描画
- Canvas で画像と文字を表示する
- Canvas Animation で円弧を動かす
References:
Canvas | Android Developers
Canvas and Drawables | Android Developers