Существует два других способа отображения индикатора активности без использования модального ProgressDialog.
Вы можете использовать ImageView в макете и применять к нему анимацию. Ссылка на сайт разработчика .
public void startAnimation() {
// Create an animation
RotateAnimation rotation = new RotateAnimation(
0f,
360f,
Animation.RELATIVE_TO_SELF,
0.5f,
Animation.RELATIVE_TO_SELF,
0.5f);
rotation.setDuration(1200);
rotation.setInterpolator(new LinearInterpolator());
rotation.setRepeatMode(Animation.RESTART);
rotation.setRepeatCount(Animation.INFINITE);
// and apply it to your imageview
findViewById(R.id.myActivityIndicator).startAnimation(rotation);
}
Или вы можете использовать xml-drawable для описания фонового изображения, которое будет иметь некоторую вращающуюся анимацию:
Сначала опишите drawable (например, /res/drawable/my-indicator.xml)
<animated-rotate xmlns:android="http://schemas.android.com/apk/res/android"
android:drawable="@drawable/spinner_black_76"
android:pivotX="50%"
android:pivotY="50%"
android:framesCount="12"
android:frameDuration="100" />
Затем установите его на фоне какого-либо вида