Make transparent images with ImageView in XML layout

Java 側で ImageView#setAlpha 使えばいいていう記述は引っかかるんだけど XML だけでできないと意味がないだろとおもって調べた結果。結論は android:tint 属性を使えばいいみたい。

#argb 形式は逆にめんどくさいので #aarrggbb 形式を使う方向で。 rrggbb はすべて 0 で OK というか 0 にしないと指定色が blend されてしまうので注意。たとえば #80ff0000 を指定すると赤っぽく、透明度 50% で表示される。元画像を白単色で作っておいて android:tint で色だけ変更するとかして drawable 画像の数を減らすものなんじゃろうか…。

以下 sample 。透過度 10% で背景画像を表示する。

<ImageView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_margin="20dp"
    android:layout_gravity="center"
    android:scaleType="fitCenter"
    android:tint="#a0000000"
    android:src="@drawable/background" />

Android は resource と logic の分離がキレイにできていいやねー。