赞
踩
Transition
:意“过渡”,从字面意思上理解,就是从一种状态到另一种状态的切换过程,同样,对于Android
中,其实现了UI
状态的切换,其中包含了同一个Activity
不同UI
视图的变换,同时也能够实现不同Activity
的切换动画,最出名的可能就是共享元素动画了。
官网提供的原理如下
从流程图上可以看出,有关键类如下:
Scene
: 视图状态,定义开始和结束的状态。Transtion
: 动画,对于初始状态和结束状态的过渡效果的定义。会遍历对应Scene
下的每一个View
TransitionManager
:相应管理器,启动过渡效果。Transition
动画首先看一下实现的效果:
根据上面的原理图,我们可以按照如下思路实现效果。
Scene
)和结束场景(Scene
)。Transition
)。TransitionMananger
启动相应动画效果。实现代码如下:
首先创建基本的布局文件activity_scene.xml
文件
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:padding="16dp">
<Button
android:onClick="begin"
android:layout_width="match_parent"
android:layout_height="45dp"
android:text="开始动画" />
<!--这个View用来做动画的父布局-->
<FrameLayout
android:id="@+id/rootView"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<!--初始状态 -->
<include layout="@layout/scene1"/>
</FrameLayout>
</LinearLayout>
为了便于区分开始与结束状态的场景:将初始状态的场景抽出来为一单一的布局文件。
初始状态与结束状态的布局分别如下:
scene1.xml
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="400dp">
<ImageView
android:id="@+id/image1"
android:layout_width="150dp"
android:layout_height="150dp"
android:layout_centerInParent="true"
android:src="@drawable/image1" />
<ImageView
android:id=&
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。