[Android] TransitionDrawable クロス・フェード animation

Android7

LayerDrawableの拡張で、first layerとsecond layerのクロスフェードをさせることができ、下の例のような効果をだすことができます。

Android Studio 2.2.3
Android 7.1.1

 

 

TransitionDrawable

 
最初の画像とフェード後の画像を2枚@drawableに配置
同じdrawableにtransitionを記述した下のようなxmlファイルも置きます。
 
animation.xml

 
レイアウトファイルでImageViewをセットして、その背景として先のanimation.xmlを設定します。
srcにするとエラーになります。

activity_main.xml

 
startTransition(int msec)
によりアニメーションを開始します。

reverseTransition(int msec)
にて逆にフェードすることができ

resetTransition()
最初の画像にリセットします。

MainActivity.java

 
setCrossFadeEnabled(boolean)
これは設定した画像で効果が分からないことがあります。
trueの場合は、最初の画像が消えていきますが
falseにすると最初の画像も残ります。背景を透明にした2枚の画像ではそれが明確です。
 
 

References:
TransitionDrawable
LayerDrawable