其他Draw文章参考:
Android中Drawable整体介绍
介绍
Transition:过渡
LayerDrawables的扩展
TransitionDrawable 是可在两种可绘制对象资源之间交错淡出的可绘制对象。
每个可绘制对象由单一 <transition>
元素内的 <item>
元素表示。不支持超过两个项目。要向前转换,请调用 startTransition()。要向后转换,则调用 reverseTransition()。
语法
<?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>
<transition>
必备。这必须是根元素。包含一个或多个 <item> 元素。
属性:
xmlns:android
字符串。必备。定义 XML 命名空间,其必须是 "http://schemas.android.com/apk/res/android"。
<item>
定义要用作可绘制对象转换一部分的可绘制对象。必须是 <transition> 元素的子项。接受子 <bitmap> 元素。
属性:
android:drawable
可绘制对象资源。必备。引用可绘制对象资源。
android:id
资源 ID。此可绘制对象的唯一资源 ID。要为此项新建资源 ID,请使用以下形式:"@+id/name"。加号表示应创建为新 ID。可以使用此 ID 检索和修改具有 View.findViewById() 或 Activity.findViewById() 的可绘制对象。
android:top
整型。顶部偏移(像素)。
android:right
整型。右边偏移(像素)。
android:bottom
整型。底部偏移(像素)。
android:left
整型。左边偏移(像素)。
注意这个偏移量是图片的偏移量,不同的偏移量,展示的效果可能不同。
关于startTransition与reverseTransition
这个TransitionDrawable可以认为是通过两个Drawable拼接成的一组"动画"
你采用startTransition表示的就是按照顺序(先第一张,在第二张)出现,参数是完成的时间
采用reverseTransition表示的就是按照顺序(先第二张,在第一张)出现,参数是完成的时间
例子
<?xml version="1.0" encoding="utf-8"?>
<transition xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@drawable/test"/>
<item android:drawable="@drawable/xlj"
android:top="50px"
android:left="50px"
/>
</transition>
XML中
<ImageButton
android:id="@+id/button"
android:layout_height="150dp"
android:layout_width="150dp"
android:src="@drawable/transition_drawable" />
代码中
ImageButton button = (ImageButton) findViewById(R.id.button);
final TransitionDrawable drawable = (TransitionDrawable) button.getDrawable();
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
drawable.startTransition(5000);
}
});
网友评论