类 |
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(一)动画体系简介,涉及到的核心类、核心接口讲解(下)