public void propertyValuesHolderDown(final View view) {
PropertyValuesHolder pvhX = PropertyValuesHolder.ofFloat("alpha", 1f, 0.9f, 0.9f, 0.91f, 0.92f, 0.93f, 0.94f, 0.95f, 0.96f, 0.97f, 0.98f, 0.99f, 1f);
PropertyValuesHolder pvhY = PropertyValuesHolder.ofFloat("scaleX", 1f, 0.9f, 0.9f, 0.91f, 0.92f, 0.93f, 0.94f, 0.95f, 0.96f, 0.97f, 0.98f, 0.99f, 1f);
PropertyValuesHolder pvhZ = PropertyValuesHolder.ofFloat("scaleY", 1f, 0.9f, 0.9f, 0.91f, 0.92f, 0.93f, 0.94f, 0.95f, 0.96f, 0.97f, 0.98f, 0.99f, 1f);
float shakeFactor =1.0f;
// 旋转
PropertyValuesHolder pvhRotate = PropertyValuesHolder.ofKeyframe(View.ROTATION,
Keyframe.ofFloat(0f, 0f),
Keyframe.ofFloat(.1f, -5f * shakeFactor),
Keyframe.ofFloat(.2f, -5f * shakeFactor),
Keyframe.ofFloat(.3f, 5f * shakeFactor),
Keyframe.ofFloat(.4f, -5f * shakeFactor),
Keyframe.ofFloat(.5f, 5f * shakeFactor),
Keyframe.ofFloat(.6f, -5f * shakeFactor),
Keyframe.ofFloat(.7f, 5f * shakeFactor),
Keyframe.ofFloat(.8f, -5f * shakeFactor),
Keyframe.ofFloat(.9f, 5f * shakeFactor),
Keyframe.ofFloat(1f, 0)
);
ObjectAnimator.ofPropertyValuesHolder(view, pvhRotate).setDuration(2000).start();
}