[Android] Custom Canvas をレイアウトに挿入する

Canvas と Paint を使って図形を描画しましたが、xmlで記述されたレイアウトを使っていてその中に描画を挿入したい場合があります。
 
テキストとボタンのレイアウトに Canvas の描画領域を挿入した(重ねた)例です。
 
cnvas2_1b

Android Studio 2.1.3
Android 7.0

 

sponsored link

Custom View をレイアウトに挿入

 
canvasで作成した描画領域、ViewをあたかもTextViewなどのようにレイアウトに張り付けられます。カスタムなので定義としては
「パッケージ名+Viewのクラス」となります。この場合、
com.example.testlayoutcanvas1 がパッケージ名で
TestViewがクラス名ですのでこうなります。
 

 
これで、ButtonやTextViewと同じように扱えます。

Canvas の作成

 
TestLayoutCanvas でプロジェクトを作成し
TestView としてCanvas と Paint と同様にCanvasを作ります
 
TestView.java

 
次にMainActivityを作ります。
 
MainActivity.java

 
最後に、activity_main.xmlのレイアウトファイルに
com.example.testlayoutcanvas1.TestView
のタグで記述します
 
activity_main.xml

 
RelativLayout で設定して描画領域がわかりやすいように半透明の矩形を使いました

cnvas1_1 cnvas2_1b cnvas3_1 canvasImage01 circle_animation02