TransitionDrawable

介绍

其他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);
            }
        });
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 176,192评论 25 709
  • XML bitmap XML 位图是在 XML 中定义的资源,指向位图文件。实际上是原始位图文件的别名。XML 可...
    李建彪阅读 5,718评论 0 3
  • ¥开启¥ 【iAPP实现进入界面执行逐一显】 〖2017-08-25 15:22:14〗 《//首先开一个线程,因...
    小菜c阅读 11,872评论 0 17
  • Overview 从Drawable的类继承图上可以看到TransitionDrawable是LayerDrawa...
    Ten_Minutes阅读 4,037评论 0 0
  • 只会用些简单的线条,画的不过是生活中的故事,很怀念我的古汉老师,本是很枯燥的课,他却上的很有意思。。幽默,风趣,让...
    墨迟Gui阅读 3,012评论 3 4

友情链接更多精彩内容