小菜最近在学习 Android 基本动画,前两天整理了一下相对复杂的 Android 基础动画之 scale 渐变缩放,今天继续学习整理其他三种基本动画。
公共属性:
1. android:duration="3500"
duration 代表动画过程中持续时常;所有的动画均有该属性;
2. android:fillAfter="true"
fillAfter 代表动画结束后是否保存在最后位置,true 为结束位置,false 为返回开始位置。
动画的绑定方式可以参考上一篇博客,下面直接介绍各动画详细属性。
Alpha 透明度
anim_alpha.xml
<?xml version="1.0" encoding="utf-8"?>
<alpha xmlns:android="http://schemas.android.com/apk/res/android"
android:duration="3500"
android:fromAlpha="0.0"
android:toAlpha="1.0" />
1. android:fromAlpha="0.0"
fromAlpha 代表 View 的初始透明度;
2. android:toAlpha="1.0"
toAlpha 代表 View 的终止透明度;
Tips: 透明度设置的范围并非只是在 0.0~1.0 之间,<= 0.0 不可见,>= 1.0 为可见,设置在初始值小于 0.0 或终止值大于 1.0 时显示是有区别的。例:fromAlpha="-2.5" 和 toAlpha="1.0",动画时间前 2.5s 均不可见,最后 1s 出现由 0.0->1.0 的透明变化,建议大家多多尝试。
Translate 平移
anim_translate.xml
<?xml version="1.0" encoding="utf-8"?>
<translate xmlns:android="http://schemas.android.com/apk/res/android"
android:duration="3500"
android:fillAfter="true"
android:fromXDelta="0"
android:fromYDelta="0"
android:toXDelta="50%"
android:toYDelta="50%p" />
1. android:fromXDelta="0"
fromXDelta 代表水平方向平移的初始位置;
2. android:toXDelta="50%"
toXDelta 代表水平方向平移的终止位置;
3. android:fromYDelta="0"
fromYDelta 代表竖直方向平移的初始位置;
4. android:toYDelta="50%"
toYDelta 代表竖直方向平移的终止位置;
Tips: 平移的值与 scale 缩放时类似,分为整数值,百分比/小数点值,百分比 + p 方式,使用方法与 scale 中一致,请参照上一篇博客介绍。
Rotate 旋转
anim_rotate.xml
<?xml version="1.0" encoding="utf-8"?>
<rotate xmlns:android="http://schemas.android.com/apk/res/android"
android:duration="3500"
android:fillAfter="true"
android:fromDegrees="0"
android:pivotX="50%"
android:pivotY="0%"
android:toDegrees="360" />
1. android:fromDegrees="0"
fromDegrees 代表 View 旋转时初始角度,角度正负均可;
2. android:toDegrees="0"
toDegrees 代表 View 旋转时终止角度;
3. android:pivotX="50%"
pivotX 代表 View 旋转时圆心 (pivotX, y);
4. android:pivotY="0%"
pivotY 代表 View 旋转时圆心 (x, pivotY);
Tips:
- pivotX 和 pivotY 代表的圆心坐标点值与 scale 缩放时类似,分为整数值,百分比/小数点值,百分比 + p 方式;
- 若不设置 pivotX 和 pivotY 默认代表 (0, 0),若不设置 fromDegrees 和 toDegrees 默认没有反应,因为旋转角度为 0,若不设置 duration 则没有旋转效果,默认时间为 0。
小菜的动画部分是短板,正在从零学习,不对的请多多指正。