项目需要做一个加载转圈的效果,给了一张菊花图,首先想到的是使用补间动画的旋转效果。
在anim目录中创建loading.xml
<?xml version="1.0" encoding="utf-8"?>
<rotate xmlns:android="http://schemas.android.com/apk/res/android">
<rotate
android:duration="2000"
android:pivotX="50%"
android:pivotY="50%"
android:repeatCount="-1"
android:fromDegrees="0"
android:toDegrees="720"></rotate>
</rotate>
然后再通过对菊花视图ImageView播放动画实现
<ImageView
android:id="@+id/loading"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/icon_loading"/>
播放动画的代码
private void loading(){
Animation animation = AnimationUtils.loadAnimation(mContext,R.anim.loading);
LinearInterpolator lin = new LinearInterpolator(); //匀速
animation.setInterpolator(lin);
loading.startAnimation(animation);
}
虽然也可以实现,但是感觉还是比较麻烦,最后网上看到可以通过修改ProgressBar的indeterminateDrawable属性来实现,简单又方便。可以参考这篇博客:https://blog.csdn.net/chenlove1/article/details/41758977 ,我使用的是方式2。