[Android] Canvas drawBitmap, drawTextで画像とテキストを表示

前のページで Canvas で描画した領域を消したり表示したりする場合にPorterDuff.Mode.CLEARを使いましたが、部分的に表示・非表示をしたい場合にはちょっと使いにくいかもしれません。
それぞれが重なっていると、重なった部分が黒抜きで消えたり色々面倒です。シンプルに全て再描画を使う方がいいかもしれません。
 
1x1.trans - [Android] Canvas drawBitmap, drawTextで画像とテキストを表示


Android Studio
2024.1.1

 




Canvasに画像とテキストを表示

 

この例では、TextViewでのテキストとCanvas上のテキストが混在します。またCanvas領域に画像を表示していますが、これもImageViewで表示することもできます
 

 

drawBitmap、drawText

 

Canvasに画像とテキストを描画するのに、drawBitmapを使います
drawBitmapは色々使い方がありますが、簡単なところでは、

画像をdrawableに入れて、CanvasのためのViewを継承したクラスを作成して
画像の描画をしてみます

leftはxポジション、topはyポジションとして

 
文字列の表示の場合は、drawTextを使います

文字列を表示するには、描画スタイルの設定をします
Paint.Style.FILL_AND_STROKE

 

 

サンプルコード

  

button によりCanvas領域での画像と文字を切り替えます。
画像 img.jpg など適宜drawableに入れておきます。

まずCanvasを作るためにTestCanvasViewクラスを新しく作成
この例の package は 「com.example.testcanvasimagetext」で設定しました

TestCanvasView.java

 
MainActivity.java

 
レイアウトの中にカスタムで作成したCanvasを挿入する形にします。

activity_main.xml

 
strings.xml

1x1.trans - [Android] Canvas drawBitmap, drawTextで画像とテキストを表示

ボタンをタップすると

1x1.trans - [Android] Canvas drawBitmap, drawTextで画像とテキストを表示


 

関連ページ:

 

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

シェアする

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

フォローする