方式一:利用View的rotate属性,加入属性动画
iv.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { iv.setPivotX(iv.getWidth()/2); iv.setPivotY(iv.getHeight()); ValueAnimator animator=ValueAnimator.ofFloat(0,90); animator.setDuration(5*1000); animator.addUpdateListener(new ValueAnimator.AnimatorUpdateListener() { @Override public void onAnimationUpdate(ValueAnimator valueAnimator) { iv.setRotation((Float) valueAnimator.getAnimatedValue()); } }); animator.start(); } });
方式二:利用动画
iv.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { Animation animation=new RotateAnimation(0,90,Animation.RELATIVE_TO_SELF,0.5f,Animation.RELATIVE_TO_SELF,1f); animation.setFillAfter(true); animation.setDuration(5*1000); animation.setInterpolator(new LinearInterpolator()); animation.setRepeatCount(0); iv.startAnimation(animation); } });