public static ObjectAnimator nope(View view) {
        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);

    }


第二种效果

public static ObjectAnimator tada(View view) {
        return tada(view, 1f);
    }
    
    public static ObjectAnimator tada(View view, float shakeFactor) {

        PropertyValuesHolder pvhScaleX = PropertyValuesHolder.ofKeyframe(View.SCALE_X,
                Keyframe.ofFloat(0f, 1f),
                Keyframe.ofFloat(.1f, .9f),
                Keyframe.ofFloat(.2f, .9f),
                Keyframe.ofFloat(.3f, 1.1f),
                Keyframe.ofFloat(.4f, 1.1f),
                Keyframe.ofFloat(.5f, 1.1f),
                Keyframe.ofFloat(.6f, 1.1f),
                Keyframe.ofFloat(.7f, 1.1f),
                Keyframe.ofFloat(.8f, 1.1f),
                Keyframe.ofFloat(.9f, 1.1f),
                Keyframe.ofFloat(1f, 1f)
        );

        PropertyValuesHolder pvhScaleY = PropertyValuesHolder.ofKeyframe(View.SCALE_Y,
                Keyframe.ofFloat(0f, 1f),
                Keyframe.ofFloat(.1f, .9f),
                Keyframe.ofFloat(.2f, .9f),
                Keyframe.ofFloat(.3f, 1.1f),
                Keyframe.ofFloat(.4f, 1.1f),
                Keyframe.ofFloat(.5f, 1.1f),
                Keyframe.ofFloat(.6f, 1.1f),
                Keyframe.ofFloat(.7f, 1.1f),
                Keyframe.ofFloat(.8f, 1.1f),
                Keyframe.ofFloat(.9f, 1.1f),
                Keyframe.ofFloat(1f, 1f)
        );
        
        //旋转
//        PropertyValuesHolder pvhRotate = PropertyValuesHolder.ofKeyframe(View.ROTATION,
//                Keyframe.ofFloat(0f, 0f),
//                Keyframe.ofFloat(.1f, -3f * shakeFactor),
//                Keyframe.ofFloat(.2f, -3f * shakeFactor),
//                Keyframe.ofFloat(.3f, 3f * shakeFactor),
//                Keyframe.ofFloat(.4f, -3f * shakeFactor),
//                Keyframe.ofFloat(.5f, 3f * shakeFactor),
//                Keyframe.ofFloat(.6f, -3f * shakeFactor),
//                Keyframe.ofFloat(.7f, 3f * shakeFactor),
//                Keyframe.ofFloat(.8f, -3f * shakeFactor),
//                Keyframe.ofFloat(.9f, 3f * shakeFactor),
//                Keyframe.ofFloat(1f, 0)
//        );

        return ObjectAnimator.ofPropertyValuesHolder(view, pvhScaleX, pvhScaleY).
                setDuration(1000);
    }


更多相关文章

  1. android里面模拟按Home键的效果
  2. Android实现冒泡效果进度条
  3. Android模仿微信导航页效果源码
  4. Android 导航条效果实现(六) TabLayout+ViewPager+Fragment
  5. QQ上的tabhost效果
  6. Android 使用View的旋转实现漂亮的动画效果
  7. Android使用贝塞尔线高仿QQ聊天消息气泡的拖拽效果
  8. android中图片倒影、圆角效果重绘

随机推荐

  1. openCv CameraBridgeViewBase 竖屏显示对
  2. 关于SQLite数据库的那些事儿
  3. 命令行执行Android程序
  4. 在 Android(安卓)Studio 中配置源码路径
  5. Android之RecyclerView简单使用(三)
  6. 在eclipse环境中开发android原生应用
  7. 【Android开发那点破事】解决Andriod使用
  8. Android(安卓)DecorView浅析
  9. android/ophone中本机号码的获取
  10. android离线安装adt