Interpolator是用来修饰动画的变化速率的。几种常见的Interpolator
先定义个位移动画
animationCompare = new TranslateAnimation(Animation.RELATIVE_TO_PARENT, 0.0f, Animation.RELATIVE_TO_PARENT, 0.25f, Animation.RELATIVE_TO_PARENT, 0.0f, Animation.RELATIVE_TO_PARENT, 0.0f);
animationCompare.setDuration(5*1000);
animationCompare.setFillAfter(true);
加速慢速
animation.setInterpolator(new AccelerateDecelerateInterpolator());
view.startAnimation(animation);
加速:
animation.setInterpolator(new AccelerateInterpolator());
view.startAnimation(animation);
回退再加速:
animation.setInterpolator(new AnticipateInterpolator());
view.startAnimation(animation);
回退再狂加速
animation.setInterpolator(new AnticipateInterpolator());
view.startAnimation(animation);
反弹
animation.setInterpolator(new AnticipateOvershootInterpolator());
view.startAnimation(animation);
来回晃:
animation.setInterpolator(new CycleInterpolator(2.0f));
view.startAnimation(animation);
到目的后,弹出一点再回来:
animation.setInterpolator(new OvershootInterpolator());
view.startAnimation(animation);
接下来是重点:
自定义的
public class MyInterpolator implements Interpolator {
@Override
public float getInterpolation(float input) {
Log.d("TAG", "getInterpolation:"+input);
if (input >= 0 && input <= 0.5) {
return -4*input;
} else {
return 6*input-5;
}
}
animation.setInterpolator(new MyInterpolator());
view.startAnimation(animation);
共同學習,寫下你的評論
評論加載中...
作者其他優質文章