手记

Interpolator

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);

原文链接:http://www.apkbus.com/blog-880881-63309.html

0人推荐
随时随地看视频
慕课网APP