美文网首页Android
三、定义 界面指定元素 或界面间共享元素 的转场动画基础

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

作者: HungerDeng | 来源:发表于2017-11-26 17:20 被阅读0次

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以下实现共享转场

相关文章

网友评论

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

    本文链接:https://www.haomeiwen.com/subject/wvzkbxtx.html