public void animate(View view) {        PropertyValuesHolder propertyValuesHolder = PropertyValuesHolder.ofFloat("y", view.getY(), view.getY()+70);        ObjectAnimator objectAnimator = ObjectAnimator.ofPropertyValuesHolder(view, propertyValuesHolder);        objectAnimator.setInterpolator(new CycleInterpolator(2));        objectAnimator.setDuration(400);        objectAnimator.start();    }

这个是y轴方向的一个周期运动(简谐运动) 

我想让震幅越来越小我重写了CycleInterpolator

public class MyCycleInterpolator extends CycleInterpolator {    private  float cycles;    public MyCycleInterpolator(float cycles) {        super(cycles);        this.cycles=cycles;    }    public MyCycleInterpolator(Context context, AttributeSet attrs) {        super(context, attrs);    }    public float getInterpolation(float input) {        // return (float)(Math.sin(2 * cycles * Math.PI * (input)));        return (float)(Math.sin(2 * cycles * Math.PI * (input)))*(1f-input);    }}
根据简谐运动公式 

我根据 时间因子 input确定 振幅 A=(1-input) 越来越小

实现了有阻尼上下震动的效果

  public void animateY(View view) {        PropertyValuesHolder propertyValuesHolder = PropertyValuesHolder.ofFloat("y", view.getY(), view.getY()+70);        ObjectAnimator objectAnimator = ObjectAnimator.ofPropertyValuesHolder(view, propertyValuesHolder);        objectAnimator.setInterpolator(new MyCycleInterpolator(2));        objectAnimator.setDuration(400);        objectAnimator.start();    }

还有 放大缩小的跟果冻似的效果

    public void animateScale(View view){        PropertyValuesHolder propertyValuesHolder1 = PropertyValuesHolder.ofFloat("scaleX",1f,1.5f);        PropertyValuesHolder propertyValuesHolder2 = PropertyValuesHolder.ofFloat("scaleY",1f,1.5f);        ObjectAnimator objectAnimator = ObjectAnimator.ofPropertyValuesHolder(view, propertyValuesHolder1,propertyValuesHolder2);        objectAnimator.setInterpolator(new MyCycleInterpolator(2));        objectAnimator.setDuration(400);        objectAnimator.start();    }


更多相关文章

  1. python list.sort()根据多个关键字排序的方法实现
  2. android Gallery3D效果
  3. android:MotionEvent
  4. Android(安卓)支付宝支付密码输入界面
  5. Android的按钮按下效果
  6. Android用悬浮按钮实现翻页效果
  7. Android(安卓)studio 基于BaseAdapter 的翻牌游戏
  8. Android(安卓)导航条效果实现(一) TabActivity+TabHost
  9. Android(安卓)studio 简单的多线程

随机推荐

  1. PhoneGap 开发环境搭建
  2. Android(安卓)模仿网易新闻简单标题栏 《
  3. Android(安卓)Back键点击两次退出应用详
  4. Android(安卓)ViewStub 布局延迟加载
  5. 用 Handler 轻松实现专属Android定时器
  6. Android(安卓)之窗口小部件-Gridview
  7. Android(安卓)源码编译学习笔记(一)
  8. Unable to install Android(安卓)Studio
  9. Android开发者文档笔记(一)
  10. Android(安卓)SDK下载和更新失败的解决方