Android 动画资源详解
时间:2014-05-24 10:14:41
收藏:0
阅读:343
属性动画:
- 使对象的属性值在一定时间间隔内变化到某一个值。
- http://developer.android.com/guide/topics/resources/animation-resource.html#Property
资源目录:rec\animator
<set xmlns:android="http://schemas.android.com/apk/res/android"
android:ordering="sequentially" > // together|sequentially
<objectAnimator
android:duration="2000"
android:propertyName="y"
android:valueTo="300"
android:valueType="intType" />
<objectAnimator
android:duration="3000"
android:propertyName="x"
android:valueTo="220"
android:valueType="intType" />
</set>
创建对应用的属性类
class Move
{
private int y;
private int x;
public int getY()
{
return y;
}
public void setY(int y)
{
this.y = y;
button.layout(button.getLeft(), y, button.getRight(),
y + button.getMeasuredHeight());
}
public int getX()
{
return x;
}
public void setX(int x)
{
this.x = x;
button.layout(x, button.getTop(), x + button.getMeasuredWidth(),
button.getBottom());
}
}
装载资源并执行动画
// 装载属性动画资源
AnimatorSet set = (AnimatorSet) AnimatorInflater.loadAnimator(this,
R.animator.property_anim);
// 设置要控制的对象
set.setTarget(move);
// 开始动画
set.start();
帧动画:
- 在高频率地连续播放静态图像时就会产生动画的效果
- http://developer.android.com/guide/topics/resources/animation-resource.html#Frame
资源目录:res/drawable/
- 帧动画必须用<animation-list>标签作为根节点
- android:oneshot="false"为无限循环播放,android:oneshot="true":播放一次
- 第一个表示一个静态图像
- android:duration="100":指定当前图像停留的时间
例子一:
<animation-list xmlns:android="http://schemas.android.com/apk/res/android"
android:oneshot="false">
<item android:drawable="@drawable/myanim1" android:duration="20" />
<item android:drawable="@drawable/myanim2" android:duration="20" />
<item android:drawable="@drawable/myanim3" android:duration="20" />
<item android:drawable="@drawable/myanim4" android:duration="20" />
<item android:drawable="@drawable/myanim5" android:duration="20" />
<item android:drawable="@drawable/myanim6" android:duration="20" />
</animation-list>
补间动画:
- 在高频率地连续播放静态图像时就会产生动画的效果(res/anim)
- http://developer.android.com/guide/topics/resources/animation-resource.html#Tween
资源目录:res/anim/
<?xml version="1.0" encoding="utf-8"?>
<set xmlns: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>
动画渲染器
定义:被用来修饰动画效果,定义动画的变化率,可以使存在的动画效果accelerated(加速),decelerated(减速),repeated(重复),bounced(弹跳)等。
- AccelerateDecelerateInterpolator 在动画开始与介绍的地方速率改变比较慢,在中间的时候加速
- AccelerateInterpolator 在动画开始的地方速率改变比较慢,然后开始加速
- AnticipateInterpolator 开始的时候向后然后向前甩
- AnticipateOvershootInterpolator 开始的时候向后然后向前甩一定值后返回最后的值
- BounceInterpolator 动画结束的时候弹起
- CycleInterpolator 动画循环播放特定的次数,速率改变沿着正弦曲线
- DecelerateInterpolator 在动画开始的地方快然后慢
- LinearInterpolator 以常量速率改变
- OvershootInterpolator向前甩一定值后再回到原来位置
评论(0)