本篇主要记录Activity之间的跳转动画,和同个Activity下Fragment之间切换的动画,增加应用的体验度。附带动画代码(这里只写了xml文件,Java的相似可以自行查找code)。
先看下效果
旋转.gif | 缩放.gif | 翻转.gif |
---|
直接上代码
旋转效果
rotate_in
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
<!--旋转-->
<rotate
android:duration="500"
android:pivotX="50%"
android:pivotY="50%"
android:fromDegrees="0"
android:toDegrees="180"/>
</set>
rotate_out
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
<!--旋转-->
<rotate
android:duration="500"
android:pivotX="50%"
android:pivotY="50%"
android:fromDegrees="-180"
android:toDegrees="0"/>
</set>
缩放效果
zoom_in
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android"
android:interpolator="@android:anim/decelerate_interpolator" >
<!--缩放-->
<scale
android:duration="1000"
android:fromXScale="0.1"
android:fromYScale="0.1"
android:pivotX="50%"
android:pivotY="50%"
android:toXScale="1.0"
android:toYScale="1.0" />
<!--透明度-->
<alpha
android:duration="1000"
android:fromAlpha="0"
android:toAlpha="1.0" />
</set>
zoom_out
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android"
android:interpolator="@android:anim/decelerate_interpolator"
android:zAdjustment="top" >
<!--缩放-->
<scale
android:duration="1000"
android:fromXScale="1.0"
android:fromYScale="1.0"
android:pivotX="50%p"
android:pivotY="50%p"
android:toXScale="0.1"
android:toYScale="0.1" />
<!--透明度-->
<alpha
android:duration="1000"
android:fromAlpha="1.0"
android:toAlpha="0" />
</set>
翻转效果
rotate3_in
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
<!--旋转-->
<objectAnimator
android:duration="600"
android:propertyName="rotationY"
android:valueFrom="-180"
android:valueTo="0"/>
<!--出现-->
<objectAnimator
android:duration="0"
android:propertyName="alpha"
android:startOffset="250"
android:valueFrom="0.0"
android:valueTo="1.0"/>
</set>
rotate3_out
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
<!--旋转-->
<objectAnimator
android:duration="600"
android:propertyName="rotationY"
android:valueFrom="0"
android:valueTo="180"/>
<!--消失-->
<objectAnimator
android:duration="0"
android:propertyName="alpha"
android:startOffset="250"
android:valueFrom="1.0"
android:valueTo="0.0"/>
</set>
详解一下
配置文件中
android:alpha 渐变透明度动画效果
android:scale 渐变缩放动画效果
android:translate 画面转换位置移动动画效果
android:rotate 画面转移旋转动画效果
alpha
属性 | 类型 | 说明 |
---|---|---|
fromAlpha | 浮点型值 | 动画起始时透明度 |
toAlpha | 浮点型值 | 动画结束时透明度 |
duration | 长整型值 | 动画持续时间 |
注:浮点型0.0表示完全透明,1.0表示完全不透明
scale
属性 | 类型 | 说明 |
---|---|---|
interpolator | 指定一个动画的插入器 | |
fromXScale | 浮点型值 | 动画起始时X坐标上的伸缩尺寸 |
toXScale | 浮点型值 | 动画结束时X坐标上的伸缩尺寸 |
fromYScale | 浮点型值 | 动画起始时Y坐标上的伸缩尺寸 |
toYScale | 浮点型值 | 动画结束时Y坐标上的伸缩尺寸 |
pivotX | 百分比 | 动画相对于物件的X坐标的开始位置 |
pivotY | 百分比 | 动画相对于物件的Y坐标的开始位置 |
注:
1)浮点型0.0表示收缩到没有,1.0表示正常无伸缩,值小于1.0表示收缩 ,值大于1.0表示放大
2)百分比从0%-100%中取值 50%为物件的X或Y方向坐标上的中点位置
translate
属性 | 类型 | 说明 |
---|---|---|
fromXDelta | 整型值 | 动画起始时X坐标上的位置 |
toXDelta | 整型值 | 动画结束时X坐标上的位置 |
fromYDelta | 整型值 | 动画起始时Y坐标上的位置 |
toYDelta | 整型值 | 动画结束时Y坐标上的位置 |
duration | 长整型值 | 动画持续时间 |
注:没有指定fromXType、toXType、fromYType、toYType 时候,默认是以自己为相对参照物
rorate
属性 | 类型 | 说明 |
---|---|---|
interpolator | 指定一个动画的插入器 | |
fromDegrees | 浮点型值 | 动画起始时物件的角度 |
toDegrees | 浮点型值 | 动画结束时物件旋转的角度 |
pivotX | 浮点型值 | 动画相对于物件的X坐标的开始位置 |
pivotY | 浮点型值 | 动画相对于物件的Y坐标的开始位置 |
duration | 长整型值 | 动画持续时间 |
注:
1)当结束角度为负数表示逆时针旋转,当结束角度为正数表示顺时针旋转
2)百分比从0%-100%中取值 50%为物件的X或Y方向坐标上的中点位置
网友评论