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

Canvas と Paint を使って描画した図形とButtonなどを同じレイアウトに入れたい。そんな時はRelativeLayout等のレイアウトとCanvasを重ねると可能です
 
1x1.trans - [Android] Custom Canvas をレイアウトに挿入する


Android Studio
2021.2.1




CustomとLayout

 
Canvasで描画していて困るのは、テキストやボタンなどと一緒にスクリーン上に表示したいというリクエストです。タッチリスナーや色々と手を尽くせば可能ですがコードが煩雑になりメンテしにくくなります。
 
そんな時は、Canvasで作成した描画領域、ViewをあたかもTextViewなどのようにレイアウトに張り付けることで解決できます。
 

 

ViewをLayoutに入れる

 
Buttonなどのように扱うために「パッケージ名+Viewのクラス名」で定義します。
例えば、com.example.testcanvasinsertion がパッケージ名で
MyViewがクラス名であれば
 

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

 

サンプルコード

 
テキストとボタンのレイアウトに Canvas の描画領域を挿入して(重ねて)みたいと思います。

MyViewクラスを新たに作成します。
 
MyView.java

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

 
activity_main.xmlのレイアウトファイルに
com.example.testcanvasinsertion.MyView
のタグで記述します

activity_main.xml

 
stringのリソースです
strings.xml

 
1x1.trans - [Android] Custom Canvas をレイアウトに挿入する


 
Canvasエリアは描画領域がわかりやすいように半透明の矩形を使いました。
 
 

 

1x1.trans - [Android] Custom Canvas をレイアウトに挿入する 1x1.trans - [Android] Custom Canvas をレイアウトに挿入する 1x1.trans - [Android] Custom Canvas をレイアウトに挿入する 1x1.trans - [Android] Custom Canvas をレイアウトに挿入する 1x1.trans - [Android] Custom Canvas をレイアウトに挿入する

 
References:
Canvas | Android Developers
Canvas and Drawables | Android Developers







アプリ開発が上達するお勧め

アプリ開発を始めたけどわからないところがあり、誰かに聞きたいけど周りにはそんな人はいない…あるいは、会社で働いていて日中そんなに時間をとれないなど、オンラインのプログラミングスクールがいいでしょう。

TECH ACADEMY
オンライン説明会



Code Camp
現役エンジニアによるオンラインプログラミングスクール【CodeCamp】


直接(ネットで)誰か分かる人に聞いた方が早く解決して、上達も早いと思います。



侍エンジニア塾
侍エンジニア塾 無料体験レッスン


とても簡単なことなのに本やネットの画像だけでは分かりにくいことはあります。実際に質問してピンポイントで教えてもらうと、なんだそんなこと、と言うのがけっこうあります。


シェアする

  • このエントリーをはてなブックマークに追加

フォローする