<?xml version="1.0" encoding="utf-8"?>
<MotionScene
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:motion="http://schemas.android.com/apk/res-auto">
<Transition
android:id="@+id/first_half"
motion:constraintSetEnd="@id/top"
motion:constraintSetStart="@id/center"
motion:duration="800">
<KeyFrameSet>
<KeyPosition
motion:framePosition="40"
motion:motionTarget="@id/tv_profit_num"
motion:keyPositionType="deltaRelative"
motion:percentY="0.1"/>
<KeyPosition
motion:framePosition="70"
motion:motionTarget="@id/tv_profit_num"
motion:keyPositionType="deltaRelative"
motion:percentY="0.3"/>
<KeyAttribute
motion:framePosition="90"
motion:motionTarget="@id/tv_profit_num"
motion:keyPositionType="deltaRelative"
motion:percentY="0.6"
android:alpha="1"/>
</KeyFrameSet>
</Transition>
<Transition
android:id="@+id/all"
motion:constraintSetEnd="@id/top"
motion:constraintSetStart="@id/lower"
motion:duration="250">
<KeyFrameSet>
<KeyAttribute
motion:framePosition="50"
motion:motionTarget="@id/tv_profit_num"
motion:keyPositionType="parentRelative"
motion:percentY="0.5"
android:alpha="1"/>
</KeyFrameSet>
</Transition>
<Transition
android:id="@+id/lower_half"
motion:constraintSetEnd="@id/center"
motion:constraintSetStart="@id/lower"
motion:duration="800">
<KeyFrameSet>
<KeyAttribute
motion:framePosition="10"
motion:motionTarget="@id/tv_profit_num"
motion:keyPositionType="deltaRelative"
android:alpha="1"
motion:percentY="0.4"/>
<KeyPosition
motion:framePosition="30"
motion:motionTarget="@id/tv_profit_num"
motion:keyPositionType="deltaRelative"
motion:percentY="0.7"/>
<KeyPosition
motion:framePosition="60"
motion:motionTarget="@id/tv_profit_num"
motion:keyPositionType="deltaRelative"
motion:percentY="0.9"/>
</KeyFrameSet>
</Transition>
<ConstraintSet android:id="@+id/center">
<Constraint
android:id="@+id/tv_profit_num"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
motion:layout_constraintBottom_toBottomOf="parent"
motion:layout_constraintLeft_toLeftOf="parent"
motion:layout_constraintRight_toRightOf="parent"
motion:layout_constraintTop_toTopOf="parent"/>
</ConstraintSet>
<ConstraintSet android:id="@+id/top">
<Constraint
android:id="@+id/tv_profit_num"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:alpha="0"
motion:layout_constraintLeft_toLeftOf="parent"
motion:layout_constraintRight_toRightOf="parent"
motion:layout_constraintTop_toTopOf="parent" />
</ConstraintSet>
<ConstraintSet android:id="@+id/lower">
<Constraint
android:id="@+id/tv_profit_num"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:alpha="0"
motion:layout_constraintLeft_toLeftOf="parent"
motion:layout_constraintRight_toRightOf="parent"
motion:layout_constraintBottom_toBottomOf="parent" />
</ConstraintSet>
</MotionScene>
要切換Transition侨核,它需要定義在同一個(gè)切換文件里面圣絮。如上面代碼祈惶。
切換動(dòng)畫時(shí)需要調(diào)transitionToStart()
如下面代碼:
motionLayout?.run{
transitionToStart()
setTransition(if(animationType == 0) R.id.all else R.id.lower_half)
transitionToEnd()
}