继续浏览精彩内容
慕课网APP
程序员的梦工厂
打开
继续
感谢您的支持,我会继续努力的
赞赏金额会直接到老师账户
将二维码发送给自己后长按识别
微信支付
支付宝支付

Interpolator

弑天下
关注TA
已关注
手记 141
粉丝 12
获赞 52

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

打开App,阅读手记
0人推荐
发表评论
随时随地看视频慕课网APP