首先创建style.xml
<!-- Dialog的Style -->
<style name="loading_dialog" parent="android:style/Theme.Dialog">
<item name="android:windowFrame">@null</item>
<item name="android:windowNoTitle">true</item>
<item name="android:windowBackground">@drawable/loading_bg</item>
<item name="android:windowIsFloating">true</item>
<item name="android:windowContentOverlay">@null</item>
</style>
然后自定义布局文件:common_dialog_progress.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:minHeight="40dp"
android:minWidth="130dp"
android:gravity="center"
android:orientation="vertical">
<ProgressBar
android:layout_marginTop="28dp"
android:id="@+id/dialog_progress"
android:layout_height="41dp"
android:layout_width="41dp"
android:indeterminateDrawable="@drawable/image_progress_upload"/>
<TextView
android:textColor="@android:color/white"
android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:layout_marginTop="20dp"
android:layout_marginBottom="20dp"
android:text="@string/label_upload_text"/>
</LinearLayout>
最后调用:
/** * 弹出一个带有进度条的弹出框 * @param context * @return Dialog */
public static Dialog progressDialog(Context context) {
Dialog dialog = new Dialog(context, R.style.loading_dialog);
dialog.setCancelable(false);
dialog.show();
View v = LayoutInflater.from(context).inflate(R.layout.common_dialog_progress, null);
dialog.setContentView(v,new LinearLayout.LayoutParams(
LinearLayout.LayoutParams.FILL_PARENT,
LinearLayout.LayoutParams.FILL_PARENT));
return dialog;
}
/** * 关闭带进度条的弹出框 * @param dialog */
public static void closeDialog(Dialog dialog) {
if (dialog !=null) {
dialog.dismiss();
}
}