tween动画
实现目标对象的变换,如移动、旋转、色彩变换、拉伸等。
xml文件位置:res/amin/xxx.xml
对应类:Animation
.
资源引用:in java R.anim.xxx in xml @[package:]anim/xxx
xml定义语法:
<?xml version="1.0" encoding="utf-8"?>
<setxmlns:android="http://schemas.android.com/apk/res/android"
android:interpolator="@[package:]anim/interpolator_resource"
android:shareInterpolator=["true" | "false"] >
<alpha
android:fromAlpha="float"
android:toAlpha="float"/>
<scale
android:fromXScale="float"
android:toXScale="float"
android:fromYScale="float"
android:toYScale="float"
android:pivotX="float"
android:pivotY="float"/>
<translate
android:fromXDelta="float"
android:toXDelta="float"
android:fromYDelta="float"
android:toYDelta="float"/>
<rotate
android:fromDegrees="float"
android:toDegrees="float"
android:pivotX="float"
android:pivotY="float"/>
<set>
...
</set></set>
该xml文件中有且只有一个根元素,该元素可以是rotate、alpha、scale、translate、set
:持有其他元素的容器<set>
AnimatorSet
.
android:interpolator:
指定动画加速状态,可以是先加速后减速、一直加速、一直减速等
android:shareInterpolator:
true:同子元素共享同一个加速器
false:不共享
<alpha>:色彩渐变动画,
AlphaAnimation
android:fromAlpha
Float.色彩渐变开始值。取值范围0-1 0透明 1不透明。
android:toAlpha
Float.色彩渐变结束值。取值范围0-1
<scale>:物体尺寸缩放变化动画
ScaleAnimation
.
- Float. 开始时物体的x方向尺寸, 1表示物体原来的大小.
- Float. 结束时物体的x方向尺寸, 1表示物体原来的大小.
- Float. 开始时物体的y方向尺寸, 1表示物体原来的大小.
- Float.结束时物体的y方向尺寸, 1表示物体原来的大小.
- Float. 物体缩放时x的中心坐标.
- Float. T物体缩放时y的中心坐标
-
<translate>:物体垂直或者水平移动动画
TranslateAnimation
. -
android:fromXDelta
-
Float or percentage . 开始时x方向偏移量
- 5:移动对应像素5px
- 5%:移动目标对象宽度5%
- 5%p:移动目标对象父对象5%
-
android:toXDelta
Float or percentage. 结束时x方向偏移量 -
android:fromYDelta
Float or percentage. 开始时y方向偏移量 -
android:toYDelta
Float or percentage. 结束时y方向偏移量 -
<rotate>:物体旋转动画
RotateAnimation
. -
android:fromDegrees
- Float. 开始时角度.(度)
-
android:toDegrees
- Float. 结束时角度.(度)
-
android:pivotX
-
Float or percentage ,x坐标上旋转中心。
- 5:距离目标对象左边5px
- 5%:距离目标对象左边宽度5%
- 5%p:距离目标对象父对象左边宽度5%
-
android:pivotY
- Float or percentage ,y坐标上旋转中心。
android:fromXScale
android:toXScale
android:fromYScale
android:toYScale
android:pivotX
android:pivotY
<alpha
android:duration="2000"
android:fromAlpha="0"
android:interpolator="@android:anim/accelerate_interpolator"
android:toAlpha="1" />
<translate
android:duration="2000"
android:fromXDelta="100%p"
android:interpolator="@android:anim/accelerate_interpolator"
android:toXDelta="0%p" />
Animation out = AnimationUtils.loadAnimation(this, R.anim.out);
layout2.startAnimation(out);
动画选择器:
是一组定义在xml中可以影响动画执行速度的修饰符。可以使你的动画加速、减速、重复、回弹
的执行。
android:interpolator
指定动画使用动画加速类型,所有动画的类都是
Interpolator的子类。
AccelerateDecelerateInterpolator | @android:anim/accelerate_decelerate_interpolator |
AccelerateInterpolator | @android:anim/accelerate_interpolator |
AnticipateInterpolator | @android:anim/anticipate_interpolator |
AnticipateOvershootInterpolator | @android:anim/anticipate_overshoot_interpolator |
BounceInterpolator | @android:anim/bounce_interpolator |
CycleInterpolator | @android:anim/cycle_interpolator |
DecelerateInterpolator | @android:anim/decelerate_interpolator |
LinearInterpolator | @android:anim/linear_interpolator |
OvershootInterpolator | @android:anim/overshoot_interpolator |
<?xml version="1.0" encoding="utf-8"?><InterpolatorNamexmlns:android="http://schemas.android.com/apk/res/android"
android:attribute_name="value"
/>
假设不知道任何属性,系统将会自动匹配上表中的动画选择器。
<accelerateDecelerateInterpolator>
动画在开始和结束的时候比较慢,中间加速
<accelerateInterpolator>
加速
android:factor
Float. 加速度 默认值1
<anticipateInterpolator>
动画开始时向后,然后向前
android:tension Float The amount of tension to apply (default is 2).
<anticipateOvershootInterpolator>
开始向后,然后向前超过指定值,在回弹到指定值
android:tension Float The amount of tension to apply (default is 2).
android:extraTension Float The amount by which to multiply the tension (default is 1.5).
<bounceInterpolator>
动画结束的时候弹起
<cycleInterpolator>
动画循环播放特定的次数,速率改变沿着正弦曲线
android:cycles Integer. The number of cycles (default is 1).
<decelerateInterpolator>
开始速度很快,然后减速,后面很慢
android:extraTension Float . The deceleration rate (default is 1).
<linearInterpolator>
动画匀速变化
<overshootInterpolator>
动画开始向前,超越最后值,然后回到最后值
android:tension
Float. The amount of tension to apply (default is 2).