今天在实现一个旋转动画的时候,发现使用xml定义和直接在代码中new出来的两种动画,在加载给ImageView做旋转的时候,xml解析出来的代码基本不按照线性插值器的效果进行匀速旋转,非常奇怪,分享给有兴趣的人研究研究。
xml定义版本:
<?xml version="1.0" encoding="utf-8"?> <set xmlns:android="http://schemas.android.com/apk/res/android"> <rotate android:fromDegrees="0" android:toDegrees="360" android:duration="500" android:repeatCount="-1" android:interpolator="@android:anim/linear_interpolator" android:pivotX="50%" android:pivotY="50%" /> </set>
mImageView.setBackgroundResource(R.drawable.rotate_bitmap); Animation tempAnimation = AnimationUtils.loadAnimation(mContext, R.anim.rotate_360); mImageView.startAnimation(tempAnimation);
下面是直接new的版本:
RotateAnimation rotateAnim = new RotateAnimation(0,360, Animation.RELATIVE_TO_SELF, 0.5f,Animation.RELATIVE_TO_SELF,0.5f); rotateAnim.setDuration(1500); rotateAnim.setRepeatCount(Animation.INFINITE); rotateAnim.setInterpolator(new LinearInterpolator()); mImageView.startAnimation(rotateAnim);