文字的抖动提示效果

来源:互联网 发布:ssc ultimate aero数据 编辑:程序博客网 时间:2024/04/30 09:56

前言

  • 应用开发中,常常需要与用户有一个交互过程,好的交互设计,能给用户带来更便利的操作使用,和更好的交互体验,也能为我们的应用加分。比如验证码输入密码输入的结果提示,为了能够及时提示用户主而且不需要另外弹窗提示而增加用户的操作,最好的方法就是给提示文字加上抖动效果,如下图:
    这里写图片描述<这里只应用了左右抖动,实际的动画效果会比GIF图好很多>

实现

动画主要使用了Keyframe和PropertyValuesHolder。
Keyframe是一个时间/值对,用于定义在某个时刻动画的状态。比如Keyframe.ofInt(.5f, Color.RED)定义了当动画进行了50%的时候,颜色的值应该是Color.RED。
PropertyValuesHolder保存了view的属性的信息以及在动画进行过程中该属性的值。通过PropertyValuesHolder.ofKeyframe方法来构建PropertyValuesHolder的实例,改方法接收一个属性名
以及多个Keyframe对象作为参数。当你想通过动画改变多个属性的时候PropertyValuesHolder就非常有用。

代码

//控件抖动的动画效果    private static ObjectAnimator shake(View view) {        // 8dp 左右抖动的幅度        int delta = view.getResources().getDimensionPixelOffset(R.dimen.spacing_medium);        PropertyValuesHolder pvhTranslateX = PropertyValuesHolder.ofKeyframe(View.TRANSLATION_X,                Keyframe.ofFloat(0f, 0),                Keyframe.ofFloat(.10f, -delta),                Keyframe.ofFloat(.26f, delta),                Keyframe.ofFloat(.42f, -delta),                Keyframe.ofFloat(.58f, delta),                Keyframe.ofFloat(.74f, -delta),                Keyframe.ofFloat(.90f, delta),                Keyframe.ofFloat(1f, 0f)        );        return ObjectAnimator.ofPropertyValuesHolder(view, pvhTranslateX).setDuration(500);    }

PropertyValuesHolder ofKeyframe(Property property, Keyframe… values)

  • property : View.TRANSLATION_X , X轴上的平移;
  • View.TRANSLATION_Y , Y轴上的平移
  • View.SCALE_X ,X轴上的缩放;
  • View.SCALE_Y ,Y轴上的缩放;
  • View.ROTATION 旋转

应用

 ObjectAnimator animator = shake("需要抖动的控件");          animator.start();
原创粉丝点击