【Kotlin/Android】Drawableリソースをコードで取得する方法!getDrawable

この記事からわかること

  • Android Studio/KotlinDrawableリソース参照する方法
  • コード取得するには?
  • getDrawableメソッド使い方
  • ActivityFragmentなどで利用する方法
  • ResourcesCompatとは?

index

[open]

\ アプリをリリースしました /

みんなの誕生日

友達や家族の誕生日をメモ!通知も届く-みんなの誕生日-

posted withアプリーチ

環境

Drawableリソースをコードで取得する方法

KotlinでコードからDrawableリソースを取得するにはResourcesCompatまたはContextCompatからgetDrawableメソッドを使用して取得します。

Activityの場合

var icon: Drawable? = ResourcesCompat.getDrawable(getResources(), R.drawable.android, null)
var icon2: Drawable? = ContextCompat.getDrawable(applicationContext, R.drawable.android)

Fragmentの場合

var icon: Drawable? = ResourcesCompat.getDrawable(getResources(), R.drawable.android, null)
var icon2: Drawable? = ContextCompat.getDrawable(requireContext(), R.drawable.android)

ResourcesCompatならActivityでもFragmentでも同じコードを流用することができます。

文字列リソースを取得する方法は以下の記事を参考にしてください。

ResourcesCompatとContextCompatの違い

ResourcesCompatとContextCompatはどちらからでもDrawableリソースを取得することができますが、クラス自体の役割は異なります。ResourcesCompatはリソースに関連する操作を行うのに対し、ContextCompatはコンテキストに関連する操作を行います。

ResourcesCompat

リソースに関連する操作を実行するためのユーティリティクラス。
テキストスタイルやフォント、カラー、Drawableなどのリソースを取得できる。

ContextCompat

アプリケーションのコンテキストに関連する操作を行うためのユーティリティクラス。
パーミッションのチェックやデバイスの機能へのアクセス、リソースの取得も可能。

画像の大きさをリサイズする

コードで取得したDrawableリソースのサイズを変更するには以下のようにBitmapDrawableに変換することで実装できます。

val icon: Drawable? = ResourcesCompat.getDrawable(getResources(), R.drawable.myImage, null)
val bitmap = (icon as BitmapDrawable).bitmap
val resizeDrawable = BitmapDrawable(resources, Bitmap.createScaledBitmap(bitmap, 40, 40, true))

まだまだ勉強中ですので間違っている点や至らぬ点がありましたら教えていただけると助かります。

ご覧いただきありがとうございました。

searchbox

スポンサー

ProFile

ame

趣味:読書,プログラミング学習,サイト制作,ブログ

IT嫌いを克服するためにITパスを取得しようと勉強してからサイト制作が趣味に変わりました笑
今はCMSを使わずこのサイトを完全自作でサイト運営中〜

New Article

index