目的

png画像の色変更をしたい、塗り替えたい時のメモ

環境

  • Android Studio 4.1.1
  • Kotlin 1.4.32

対応メモ

以下の赤の画像を黒くしようと思います。

上記はxmlで画像を以下のように設定しました。

画像設置
<ImageView
    android:id="@+id/image"
    android:layout_width="64dp"
    android:layout_height="64dp"
    android:src="@drawable/icon"
    app:layout_constraintTop_toTopOf="parent"
    app:layout_constraintStart_toStartOf="parent"
    app:layout_constraintEnd_toEndOf="parent"
    app:layout_constraintBottom_toBottomOf="parent"
    tools:ignore="imageDescription" />

まず、比較のために、 同じ設定で色変更の確認用ImageViewandroid:id="@+id/image2"を作成。

以下で画像の色を黒に変更しました。

画像の色変更
import androidx.appcompat.content.res.AppCompatResources
import androidx.core.widget.ImageViewCompat
....


fun XXX() {
    activity?.let {
        val footerNewarrivalImage = view.findViewById<ImageView>(R.id.image2)
        val csl = activity?.let { AppCompatResources.getColorStateList(it, R.color.black) }
        ImageViewCompat.setImageTintList(footerNewarrivalImage, csl)
    }
}

アプリ上だと以下のようになりました。

以上です。