zoukankan      html  css  js  c++  java
  • 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;
            }
        }
    }
  • 相关阅读:
    JQuery中的bind()和unbind()的理解
    一行代码实现数组去重(ES6)
    vue.js学习笔记(Vuejs——组件——props数据传递)
    判断一个字符串书否存在某个字符,取出一段字符串括号中的内容
    在vue中使用高德地图vue-amap
    在egg.js中使用mongodb
    使用Element的upload上传组件,不使用action属性上传
    下载和安装mongodb4.2.0+robmongo可视化工具
    数组对象根据某个属性取出重复的个数
    钉钉小程序----使用阿里的F2图表
  • 原文地址:https://www.cnblogs.com/matd/p/12855909.html
Copyright © 2011-2022 走看看