三、定义 界面指定元素 或界面间共享元素 的转场动画基础

res/transition文件夹,创建xml文件

//举个例子 :search_enter.xml
<?xml version="1.0" encoding="utf-8"?>
<transitionSet
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto">

    <transitionSet android:duration="400">
        <targets>
            <target android:targetId="@id/scrim" />
        </targets>
        <fade />
        <transition
            class="dkm.gdut.com.dkmsearchviewlib.transitions.CircularReveal"
            app:centerOn="@id/searchback"
            android:interpolator="@android:interpolator/linear_out_slow_in" />
    </transitionSet>

    <fade
        android:duration="300"
        android:interpolator="@android:interpolator/linear_out_slow_in">
        <targets>
            <target android:targetId="@id/search_background" />
        </targets>
    </fade>

    <fade
        android:startDelay="400"
        android:duration="400"
        android:interpolator="@android:interpolator/linear_out_slow_in">
        <targets>
            <target android:targetId="@id/search_view" />
        </targets>
    </fade>

    <fade
        android:duration="400"
        android:interpolator="@android:interpolator/fast_out_slow_in">
        <targets>
            <target android:targetId="@android:id/navigationBarBackground" />
        </targets>
    </fade>

</transitionSet>

其中</fade>、</transition>是动画效果的名称 .
Android5.0+(API>=21)支持下面这些进入与退出的转换

  • 分解(explode):从场景中心移入或移出视图。
  • 滑动(slide):从场景边缘移入或移出视图。
  • 淡入淡出(fade):通过调整透明度在场景中增添或移除视图。

标签里面的<target android:targetId="@id/search_background" />表示需要进行过度转场切换的View的id.这个id可以是系统自带的,也可以是我们自己定义的id.
另外,还有 excludeId表示不需要该id的view进行过渡转场,其他的view都要进行过渡转场

    <fade>
        <targets>
            <target android:excludeId="@android:id/statusBarBackground"/>  <!--状态栏-->
            <target android:excludeId="@android:id/navigationBarBackground"/> <!--导航栏-->
        </targets>
    </fade>

</transitionSet>是用来实现多个过渡效果的叠加,可以在</transitionSet>的根标签用android:transitionOrdering注明这几种动画的演示顺序,sequential 表示顺序执行,而 together表示同时执行。默认是同时执行的,也可以通过duration来设置动画时间,android:startDelay来设置动画延迟.

Transition系列文章
一、初识Transition—实现两个场景的变换
二、番外篇 Transition之ViewOverlay
三、定义 界面指定元素 或界面间共享元素 的转场动画基础
四、Content Transition实现非共享元素转场
五、SharedElementTransition之Activity间的转场
六、SharedElementTransition之Fragment间的转场
七、番外篇- 自定义Visibility
八、5.0以下实现共享转场

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 175,653评论 25 709
  • 用两张图告诉你,为什么你的 App 会卡顿? - Android - 掘金 Cover 有什么料? 从这篇文章中你...
    hw1212阅读 14,480评论 2 59
  • 文/归海无期 一篇随笔带走我的思绪 把酒言欢,身边几个弟兄 暖暖的灯洒满整间屋子 映得情感,也偷偷的变浓 我的茶里...
    归海无期阅读 1,163评论 0 0
  • 文丨辣椒 我是哪种写手?好像从来没有扪心自问过,而是想写了就写,说起来,倒有点随心所欲了。 写作于我,就是拿起...
    鬼椒阅读 2,555评论 0 1
  • 今天和朋友聊了一下有机农业众筹,很有启发。 初心一定要正。有机农业是一种典型的"消费+收益"式众筹,因为盈利能力对...
    robot_liu阅读 3,077评论 0 0