直接上效果图:
public class Main extends Activity {
private Context mContext;
private ImageView imageView;
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_layout);
mContext = this;
imageView = findViewById(R.id.image);
setAnimator();
}
private void setAnimator() {
final ObjectAnimator animator = ObjectAnimator.ofFloat(imageView, "rotation", 0f, 360f);
LinearInterpolator lin = new LinearInterpolator();
animator.setInterpolator(lin);
animator.addListener(new Animator.AnimatorListener() {
@Override
public void onAnimationStart(Animator animation) {
}
@Override
public void onAnimationEnd(Animator animation) {
setAnimator();
}
@Override
public void onAnimationCancel(Animator animation) {
}
@Override
public void onAnimationRepeat(Animator animation) {
}
});
animator.setDuration(5000);
animator.start();
}
}
<ImageView
android:id="@+id/image"
android:layout_width="100dp"
android:layout_height="100dp"
android:layout_centerInParent="true"
android:background="@drawable/image"/>
本文采用的方案是 给animator添加Listener,在onAnimationEnd()方法中进行递归操作,这样就可以实现让动画一直旋转