Creator method
public static Dialog buildLoadingDialog(Activity act, String title) {
final Dialog dialog = new Dialog(act, android.R.style.Theme_Translucent);
dialog.requestWindowFeature(Window.FEATURE_NO_TITLE);
dialog.setCancelable(false);
dialog.setContentView(R.layout.dialog_loading);
WindowManager.LayoutParams lp = dialog.getWindow().getAttributes();
lp.dimAmount = 0.6f;
dialog.getWindow().setAttributes(lp);
dialog.getWindow().addFlags(WindowManager.LayoutParams.FLAG_DIM_BEHIND);
TextView titleText = (TextView) dialog.findViewById(R.id.dialog_loading_title);
titleText.setText(title);
ImageView loadingImage = (ImageView) dialog.findViewById(R.id.dialog_loading_image);
AnimationDrawable loadAnimation = (AnimationDrawable)loadingImage.getDrawable();
loadAnimation.start();
return dialog;
}
R.layout.dialog_loading
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:background="#7C000000"
android:padding="30dp"
android:orientation="vertical" >
<ImageView
android:id="@+id/dialog_loading_image"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/loading"
android:layout_gravity="center_horizontal"
android:layout_marginBottom="5dp"
android:layout_marginTop="10dp"
/>
<TextView
android:id="@+id/dialog_loading_title"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:textColor="@color/text_color_1"
android:textSize="22sp" />
</LinearLayout>
res/drawable/loading
<animation-list xmlns:android="http://schemas.android.com/apk/res/android"
android:oneshot="false">
<item android:drawable="@drawable/loading_1" android:duration="100" />
<item android:drawable="@drawable/loading_2" android:duration="100" />
<item android:drawable="@drawable/loading_3" android:duration="100" />
<item android:drawable="@drawable/loading_4" android:duration="100" />
<item android:drawable="@drawable/loading_5" android:duration="100" />
<item android:drawable="@drawable/loading_6" android:duration="100" />
<item android:drawable="@drawable/loading_7" android:duration="100" />
<item android:drawable="@drawable/loading_8" android:duration="100" />
<item android:drawable="@drawable/loading_9" android:duration="100" />
<item android:drawable="@drawable/loading_10" android:duration="100" />
<item android:drawable="@drawable/loading_11" android:duration="100" />
</animation-list>
How to use it
private void showLoadingDialog() {
loadingDialog = DialogHelper.buildLoadingDialog(this, "Cargando...");
loadingDialog.show();
}
private void hideLoadingDialog() {
loadingDialog.dismiss();
loadingDialog = null;
}