类 | xml属性 | java实现 | 解释 |
Animation | android:duration | setDuration(long) | 动画持续时间,毫秒为单位 |
android:fillAfter | setFillAfter(boolean) | 控件动画结束时是否保持动画最后的状态 | |
android:fillBefore | setFillBefore(boolean) | 控件动画结束时是否还原到开始动画前的状态 | |
android:fillEnabled | setFillEnabled(boolean) | 与android:fillBefore效果相同 | |
android:interpolator | setInterpolator(Interpolator) | 设定插值器(指定的动画效果,譬如回弹等) | |
android:repeatCount | setRepeatCount(int) | 重复次数 | |
android:repeatMode | setRepeatMode(int) | 重复类型有两个值,reverse表示倒序回放,restart表示从头播放 | |
android:startOffset | setStartOffset(long) | 调用start函数之后等待开始运行的时间,单位为毫秒 |
2、AlphaAnimation extends Animation; AlphaAnimation的主要属性都是通过构造函数传递,主要属性如下表:
AlphaAnimation | android:fromAlpha | AlphaAnimation(float fromAlpha, ...)
| 动画开始的透明度,从0.0 --1.0 ,0.0表示全透明,1.0表示完全不透明 |
android:toAlpha | AlphaAnimation(..., float toAlpha) | 动画结束的透明度,从0.0 --1.0 ,0.0表示全透明,1.0表示完全不透明 |
3、TranslateAnimation extends Animation,TranslateAnimation中主要的属性都是通过构造函数传递的;
这里简单解释下TranslateAnimation的三个构造函数:
TranslateAnimation(Context context,AttributeSet attrs):这个构造函数是通过xml写View动画的时候系统回调的,我们不用管。
TranslateAnimation(int fromXType, float fromXValue, int toXType, float toXValue,int fromYType, float fromYValue, int toYType, float toYValue)
通过函数的参数我们可以发现XXXType和XXXValue是一一对应的,看字面意思是说,每个Value值可以对应不同Value类型,没错,Value类型不同,ValueType的写法是不一样的;在Animation中给我们提供了三种ValueType,分别是:
public static final int ABSOLUTE = 0;
public static final int RELATIVE_TO_SELF = 1;
通过传入这三种value类型,具体的value的写法也是不一样的,实现效果也是不一样的:
valueType
| value内容 | 解释 |
ABSOLUTE
|
50
| 绝对的像素值 |
RELATIVE_TO_SELF
|
50%
|
相对于自身宽高的设置百分比,大小:0.0-1.0 浮点数
|
RELATIVE_TO_PARENT
|
50%p
|
相对于父控件的宽高设置百分比,大小0.0-1.0 浮点数
|
TranslateAnimation(float fromXValue, float toXValue, float fromYValue, float toYValue):这个函数中相对于上一个函数的valueType传值都是ABSOLUTE ,也就是传入的值都必须是绝对的像素值;
TranslateAnimation | android:fromXDelta | TranslateAnimation(int fromXType, float fromXValue, int toXType, float toXValue, | 起始点X轴坐标,可以是数值、百分数、百分数p 三种样式;比如 50、50%、50%p, |
android:toXDelta | TranslateAnimation(int fromXType, float fromXValue, int toXType, float toXValue, | 结束点X坐标,可以是数值、百分数、百分数p 三种样式;比如 50、50%、50%p, | |
android:fromYDelta | TranslateAnimation(int fromXType, float fromXValue, int toXType, float toXValue, | 起始点Y轴从标,可以是数值、百分数、百分数p 三种样式;比如 50、50%、50%p, | |
android:toYDelta | TranslateAnimation(int fromXType, float fromXValue, int toXType, float toXValue, | 结束点Y轴坐标,可以是数值、百分数、百分数p 三种样式;比如 50、50%、50%p, |
ScaleAnimation | android:fromXScale | ScaleAnimation(float fromX, float toX, float fromY, float toY, | 起始的X方向上相对自身的缩放比例,浮点值,比如1.0代表自身无变化,0.5代表起始时缩小一倍,2.0代表放大一倍; |
android:toXScale | ScaleAnimation(float fromX, float toX, float fromY, float toY, | 结尾的X方向上相对自身的缩放比例,浮点值; | |
android:fromYScale | ScaleAnimation(float fromX, float toX, float fromY, float toY, | 起始的Y方向上相对自身的缩放比例,浮点值, | |
android:toYScale | ScaleAnimation(float fromX, float toX, float fromY, float toY, | 结尾的Y方向上相对自身的缩放比例,浮点值; | |
android:pivotX | ScaleAnimation(float fromX, float toX, float fromY, float toY, ) | 缩放起点X轴坐标,可以是数值、百分数、百分数p三种样式,比如 50、50%、50%p;当为数值时,表示在当前控件的左上角加上50px,做为起始缩放点;如果是50%,表示在当前控件的左上角加上自己宽度的50%做为起始点;如果是50%p,那么就是表示在当前控件的左上角加上父控件宽度的50%做为起始点x轴坐标。 | |
android:pivotY | ScaleAnimation(float fromX, float toX, float fromY, float toY, ) | 缩放起点Y轴坐标,取值及意义跟android:pivotX一样。 |
RotateAnimation | android:fromDegrees | RotateAnimation(float fromDegrees, float toDegrees, int pivotXType, float pivotXValue,
| 开始旋转的角度位置,正值代表顺时针方向度数,负值代码逆时针方向度数 |
android:toDegrees | RotateAnimation(float fromDegrees, float toDegrees, int pivotXType, float pivotXValue,
| 结束时旋转到的角度位置,正值代表顺时针方向度数,负值代码逆时针方向度数 | |
android:pivotX | RotateAnimation(float fromDegrees, float toDegrees, int pivotXType, float pivotXValue, (pivotXType默认ABSOLUTE) | 缩放起点X轴坐标,可以是数值、百分数、百分数p三种样式,比如 50、50%、50%p | |
android:pivotY | RotateAnimation(float fromDegrees, float toDegrees, int pivotXType, float pivotXValue, (pivotYType默认ABSOLUTE) | 缩放起点Y轴坐标,可以是数值、百分数、百分数p三种样式,比如 50、50%、50%p |
AnimationSet | <set></set> |
AlphaAnimation | <alpha></alpha> |
RotateAnimation | <rotate></rotate> |
TranslateAnimation | <translate></translate> |
ScalceAnimation | <scale></scale> |
android:interpolator=""
android:shareInterpolator="">
<scale "通用属性"+“专有属性”/>
<rotate "通用属性"+“专有属性”/>
<alpha "通用属性"+“专有属性”/>
<translate "通用属性"+“专有属性”/>
<set>
<scale/>
...
</set>
</set>
AnimationSet animtionSet = AnimationUtils.loadAnimation(context,R.anim.XXX);//加载xml中的动画布局
由于文章篇幅过长,其他未讲到的内容请看下一节;android 动画-Tween Animation(一)动画体系简介,涉及到的核心类、核心接口讲解(下)