animator标签 | 说明 |
---|
android:duration | 每次动画播放的时长 |
android:valueFrom | 初始动画值,取值范围为float、int和color这三种类型的值 |
android:valueTo | 动画结束值,取值范围同样是int float color三种类型的值 |
android:startOffset | 动画激活延时,对应代码中的startDelay(long delay)函数 |
android:repeat | 动画重复次数 |
android:repeatMode | 动画重复模式取值为repeat和reverse分别对应正序和倒序 |
android:valueType | 表示参数类型取值为intType和floatType分别对应android:valuFrom和android:valueTo,如果前两者的值为color则不需要设置此参数 |
android:interpolator | 设置插值器 |
ValueAnimator valueAnimator = (ValueAnimator) AnimatorInflater.loarAnimator(MainActivity.this, R.animator.animator);
valueAnimator.start();
<?xml version="1.0" encoding="utf-8"?>
<animator xmlns:android="http://schemas.android.com/apk/res/android"
android:valueFrom="0"
android:valueTo="300"
android:duration="500"
android:valueType="intType"
android:interpolator="@android:anim/bounce_interpolator">
</animator>
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
final ValueAnimator valueAnimator = (ValueAnimator) AnimatorInflater.loadAnimator(AnimatorXmlActivity.this, R.animator.animator);
valueAnimator.addUpdateListener(new ValueAnimator.AnimatorUpdateListener() {
@Override
public void onAnimationUpdate(ValueAnimator animation) {
int curValue = (int) valueAnimator.getAnimatedValue();
textView.layout(0, curValue+button.getHeight(), textView.getWidth(), button.getHeight()+textView.getHeight()+curValue);
}
});
valueAnimator.start();
}
});