TransitionDrawable:淡入淡出Drawable
更多Drawable详见Android Drawable。
1、TransitionDrawable
TransitionDrawable继承自LayerDrawable,算是对层级LayerDrawable的扩展(详见LayerDrawable:叠加图层),不过最多只支持两个子<item>。

1.1、简介
旨在在第一层和第二层之间淡入淡出。调用startTransition()开始过渡。 要仅显示第一层,调用resetTransition()。
1.2、方法
①resetTransition():仅显示第一个可绘制item
②showSecondLayer():立即显示第二层item在第一层item之上
③reverseTransition(int duration):淡入
④startTransition(int durationMillis):淡出
2、语法
可以使用<transition>元素在XML文件中定义它,参考Transition drawable。
2.1、基本语法
TransitionDrawable的基本语法如下:
<?xml version="1.0" encoding="utf-8"?>
<transition
xmlns:android="http://schemas.android.com/apk/res/android" >
<item
android:drawable="@[package:]drawable/drawable_resource"
android:id="@[+][package:]id/resource_name"
android:top="dimension"
android:right="dimension"
android:bottom="dimension"
android:left="dimension" />
</transition>2.2、<transition>
<transition>必须是根元素。包含一个或最多2个<item>元素。
2.3、<item>
转换中的每个Drawable都在嵌套的<item>中定义。必须是<transition>元素的子元素。接受子<bitmap> 元素。
①android:drawable:可绘制资源。必填项。引用可绘制资源。
②android:id:资源ID。此可绘制对象的唯一资源ID。要为此项目创建新的资源ID,请使用以下格式: "@+id/name"。加号表示应将其创建为新ID。
③android:top:整数。顶部偏移量(以像素为单位)。
④android:right:整数。右偏移量(以像素为单位)。
⑤android:bottom:整数。底部偏移量(以像素为单位)。
⑥android:left:整数。左偏移量(以像素为单位)。
⑦android:width:宽度
⑧android:height:高度
⑨android:start:整数。起始侧偏移量(以像素为单位)。
⑩android:end:整数。结束侧偏移量(以像素为单位)。
⑪android:gravity:指定对象应如何在其自身范围内在X轴和Y轴上定位其内容。
3、示例
创建TransitionDrawable资源,资源大小不一致,可以指定height和width统一。
<?xml version="1.0" encoding="utf-8"?>
<transition xmlns:android="http://schemas.android.com/apk/res/android">
<item
android:id="@+id/first"
android:width="200dp"
android:height="250dp"
android:drawable="@drawable/android2"
android:gravity="" />
<item
android:id="@+id/second"
android:width="200dp"
android:height="250dp"
android:drawable="@drawable/android1" />
</transition>代码操作,开始变换:
ImageView tran = findViewById(R.id.transition);
TransitionDrawable transitionDrawable = (TransitionDrawable) tran.getDrawable();
transitionDrawable.startTransition(2000);使用效果

参考资料:
Reference > TransitionDrawable">Android Developers > Reference > TransitionDrawable

