天天看点

ProgressBar效果的自定义Dialog

下面介绍一款不错的Dialog,之所以介绍是因为它可以实现数据加载时的progressBar,并且还可以让界面失去焦点从而不能点击界面上组件的作用。话不多说,直接上代码。

dialog_loading.xml

<?xml version="1.0" encoding="utf-8"?>
<ProgressBar xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/pbLoading"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_gravity="center"
    android:theme="@android:style/Widget.ProgressBar" />
           

LoadingDialog.java

public class LoadingDialog extends AlertDialog{

    public LoadingDialog(Context context, int theme) {
        super(context, theme);
    }

    public LoadingDialog(Context context) {
        super(context);
    }

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.dialog_loading);
    }
}
           

具体使用

private void popLoadingDialog(final boolean showLoadingDialog) {
        if (mLoadingDialog == null) {
            mLoadingDialog = new LoadingDialog(mContext, R.style.dialog);
            mLoadingDialog.setCanceledOnTouchOutside(false);
        }
        if (showLoadingDialog) {
            mLoadingDialog.show();
        } else {
            mLoadingDialog.dismiss();
        }
    }
           

style样式

<style name="dialog">
    <item name="android:windowContentOverlay">@null</item>
    <item name="android:windowFrame">@null</item><!--边框-->
    <item name="android:windowIsFloating">true</item><!--是否浮现在activity之上-->
    <item name="android:windowIsTranslucent">true</item><!--半透明-->
    <item name="android:windowNoTitle">true</item><!--无标题-->
   <item name="android:windowBackground">@android:color/transparent</item><!--背景透明-->
   <item name="android:backgroundDimEnabled">false</item><!--模糊-->
 </style>
           

继续阅读