loading加载

loading_bg.png

 

 

 

dialog_loading.xml

<?xml version="1.0" encoding="utf-8"?>
<animated-rotate xmlns:android="http://schemas.android.com/apk/res/android"
                 android:drawable="@drawable/loading_bg"
                 android:pivotX="50%"
                 android:pivotY="50%" />

 

dialog_loading.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
              android:id="@+id/dialog_loading_view"
              android:layout_width="match_parent"
              android:layout_height="match_parent"
              android:gravity="center"
              android:orientation="vertical">

    <LinearLayout
            android:layout_width="140dp"
            android:layout_height="100dp"
            android:background="@android:color/darker_gray"
            android:gravity="center"
            android:orientation="vertical"
            android:paddingLeft="21dp"
            android:paddingTop="10dp"
            android:paddingRight="21dp"
            android:paddingBottom="10dp">

        <ProgressBar
                android:id="@+id/progressBar1"
                android:layout_width="35dp"
                android:layout_height="35dp"
                android:layout_gravity="center_horizontal"
                android:indeterminateBehavior="repeat"
                android:indeterminateDrawable="@drawable/dialog_loading"
                android:indeterminateOnly="true" />

        <TextView
                android:id="@+id/tipTextView"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_marginTop="15dp"
                android:text="加载中..."
                android:textColor="@android:color/white"
                android:textSize="15sp" />
    </LinearLayout>
</LinearLayout>
LoadingDialog
public class LoadingDialog extends Dialog {

    public LoadingDialog(Context context) {
        super(context);
    }
    public LoadingDialog(Context context, int themeResId) {
        super(context, themeResId);
    }
    public static class Builder {
        private Context context;
        private String message;
        private boolean isShowMessage = true;
        private boolean isCancelable = false;
        private boolean isCancelOutside = false;

        public Builder(Context context) {
            this.context = context;
        }
        /**
         * 设置提示信息
         * @param message
         * @return
         */
        public Builder setMessage(String message) {
            this.message = message;
            return this;
        }
        /**
         * 设置是否显示提示信息
         * @param isShowMessage
         * @return
         */
        public Builder setShowMessage(boolean isShowMessage) {
            this.isShowMessage = isShowMessage;
            return this;
        }
        /**
         * 设置是否可以按返回键取消
         * @param isCancelable
         * @return
         */
        public Builder setCancelable(boolean isCancelable) {
            this.isCancelable = isCancelable;
            return this;
        }
        /**
         * 设置是否可以取消
         * @param isCancelOutside
         */
        public Builder setCancelOutside(boolean isCancelOutside) {
            this.isCancelOutside = isCancelOutside;
            return this;
        }
        public LoadingDialog create() {

            LayoutInflater inflater = LayoutInflater.from(context);
            View view = inflater.inflate(R.layout.dialog_loading, null);
            LoadingDialog loadingDialog = new LoadingDialog(context, R.style.CustomDialog);
            TextView msgText = view.findViewById(R.id.tipTextView);
            if (isShowMessage) {
                msgText.setText(message);
            } else {
                msgText.setVisibility(View.GONE);
            }
            loadingDialog.setContentView(view);
            loadingDialog.setCancelable(isCancelable);
            loadingDialog.setCanceledOnTouchOutside(isCancelOutside);
            return loadingDialog;
        }
    }
}
LoadingDialogUtil
public class LoadingDialogUtil {

    private LoadingDialog dialog;
    private Context context;

    public LoadingDialogUtil(Context context) {
        this.context = context;
    }

    /**
     * @Author AlanMa
     * @Description 加载
     * @Date 2020/5/8
     * @Param []
     * @return void
     */
    public void showLoadingDialog() {
        if (null == dialog){
            LoadingDialog.Builder loadBuilder = new LoadingDialog.Builder(context)
                    .setMessage("加载中...")
                    .setCancelable(true)
                    .setCancelOutside(false);
            dialog = loadBuilder.create();
        }
        dialog.show();
    }

    /**
     * @Author AlanMa
     * @Description 取消加载
     * @Date 2020/5/8
     * @Param []
     * @return void
     */
    public void dismissLoadingDialog() {
        if (dialog != null) {
            dialog.dismiss();
            dialog = null;
        }
    }
}

 

posted @ 2020-05-09 10:47  青竹玉简  阅读(326)  评论(0编辑  收藏  举报