- a.setDuration(1000);//设置动画所用的时间
- a.setStartOffset(300);//设置动画启动的延时
- //设置重复模式,RESTART为结束后重新开始,REVERSE为按原来的轨迹逆向返回
- a.setRepeatMode(Animation.RESTART);
- //设置重复次数,INFINITE为无限
- a.setRepeatCount(Animation.INFINITE);
- //根据用户在Spinner的选择设置target的进入的方式
- switch (position) {
- case 0:
- //加速进入
- a.setInterpolator(AnimationUtils.loadInterpolator(this,
- android.R.anim.accelerate_interpolator));
- break;
- case 1:
- //减速进入
- a.setInterpolator(AnimationUtils.loadInterpolator(this,
- android.R.anim.decelerate_interpolator));
- break;
- case 2:
- //加速进入.与第一个的区别为当repeatMode为reverse时,仍为加速返回原点
- a.setInterpolator(AnimationUtils.loadInterpolator(this,
- android.R.anim.accelerate_decelerate_interpolator));
- break;
- case 3:
- //先往后退一点再加速前进
- a.setInterpolator(AnimationUtils.loadInterpolator(this,
- android.R.anim.anticipate_interpolator));
- break;
- case 4:
- //减速前进,冲过终点前再后退
- a.setInterpolator(AnimationUtils.loadInterpolator(this,
- android.R.anim.overshoot_interpolator));
- break;
- case 5:
- //case 3,4的结合体
- a.setInterpolator(AnimationUtils.loadInterpolator(this,
- android.R.anim.anticipate_overshoot_interpolator));
- break;
- case 6:
- //停止前来回振几下
- a.setInterpolator(AnimationUtils.loadInterpolator(this,
- android.R.anim.bounce_interpolator));
- break;
- }
- //让target开始执行这个动画
- target.startAnimation(a);
- }
系统 Animation 插值器
最新推荐文章于 2024-05-01 17:41:05 发布