Android加载框

一、前言:

1、使用

先在 project的build.gradle 添加:

allprojects {
        repositories {
            ...
            maven { url "https://jitpack.io" }
        }
    }

然后在module的build.gradle 添加:

dependencies {
            compile 'com.github.LinweiJ:LoadingDialog:V0.0.1'
    }
2、简单使用
LoadingDialog loadingDialog = new LoadingDialog(context);
//或 LoadingDialog loadingDialog = new LoadingDialog.Builder(context).create();
//显示加载框
loadingDialog.loading();
//直接取消加载框
loadingDialog.cancel();
//显示加载成功后取消加载框
loadingDialog.loadSuccess();
//显示加载失败后取消加载框
loadingDialog.loadFail();
20170722021846399.gif

二、使用:

1、自定义参数(文字 延时时间 延时消失事件)

这里使用了建造者模式,跟原生dialog一样可以通过builder来初始化设置参数

//自定义参数方法一:通过LoadingDialog.Builder获得LoadingDialog时,定义参数
        LoadingDialog.Builder builder = new LoadingDialog.Builder(this);
        builder.setLoadingText("处理中...")
                .setFailText("处理失败")
                .setSuccessText("处理成功")
                //设置延时5000ms才消失,可以不设置默认1000ms
                .setDefaultDelayMillis(5000)
                //设置默认延时消失事件, 可以不设置默认不调用延时消失事件
                .setCancelDelayListener(new LoadingDialog.CancelDelayListener() {
                    @Override
                    public void success(LoadingDialog dialog) {
                        dialog.cancel();//加载框消失
                        Toast.makeText(mActivity, "处理成功==延时消失", Toast.LENGTH_SHORT).show();
                    }

                    @Override
                    public void fail(LoadingDialog dialog) {
                        dialog.cancel();//加载框消失
                        Toast.makeText(mActivity, "处理失败==延时消失", Toast.LENGTH_SHORT).show();
                    }

                    @Override
                    public void complete(LoadingDialog dialog) {
                        dialog.cancel();//加载框消失
                        Toast.makeText(mActivity, "处理完成或直接延时消失==延时消失", Toast.LENGTH_SHORT).show();
                    }
                });

LoadingDialog loadingDialog = builder.create();

loadingDialog.loadSuccess();  调用  CancelDelayListener.success()
loadingDialog.loadFail();  调用  CancelDelayListener.fail()
loadingDialog.cancelDelay();  调用  CancelDelayListener.complete() 

//注意 : 传入延时消失事件时,需要添加 dialog.cancel() 才能使加载框消失

方法二:

LoadingDialog loadingDialog = new LoadingDialog(context);
//显示加载框
loadingDialog.loading("处理中...");
//显示处理成功后取消加载框
loadingDialog.loadSuccess("处理成功");
//显示处理失败后取消加载框
loadingDialog.loadFail("处理失败");
//显示处理完成后取消加载框
loadingDialog.loadComplete("处理完成");

//显示审核成功后延时3s消失 调用SuccessCancelDelayListener.success()
 loadingDialog.loadSuccess("审核成功", 3000, new SuccessCancelDelayListener() {
                            @Override
                            public void success(LoadingDialog dialog) {
                                dialog.cancel();//加载框消失
                            }
                        });
//显示审核失败后延时3s消失 调用SuccessCancelDelayListener.fail()
loadingDialog.loadFail("审核失败", 3000, new FailCancelDelayListener() {
                            @Override
                            public void fail(LoadingDialog dialog) {
                                dialog.cancel();//加载框消失
                                Toast.makeText(mActivity, "审核失败==延时3s消失", Toast.LENGTH_SHORT).show();
                            }
                        });
//显示审核完成后延时3s消失 调用CompleteCancelDelayListener.complete()
loadingDialog.loadComplete("审核完成", 3000, new CompleteCancelDelayListener() {
                            @Override
                            public void complete(LoadingDialog dialog) {
                                dialog.cancel();//加载框消失
                                Toast.makeText(mActivity, "审核完成==延时3s消失", Toast.LENGTH_SHORT).show();
                            }
                        });//显示处理成功后延时3s消失并弹出toast
//延时3s消失 调用CompleteCancelDelayListener.complete()
loadingDialog.cancelDelay(3000, new CompleteCancelDelayListener() {
                            @Override
                            public void complete(LoadingDialog dialog) {
                                dialog.cancel();//加载框消失
                            }
                        });

三、自定义布局:

  static LoadingDialog loadingDialog;
   /**
     * 加载中
     */
    public static void showLoading(Activity mContext, String loadmessage) {
        try {
            if (loadingDialog == null) {
                loadingDialog = new LoadingDialog(mContext);
                View view = View.inflate(mContext, R.layout.base_loading_dialog, null);
                TextView tv = view.findViewById(R.id.tv);
                tv.setText(loadmessage);
                loadingDialog.setContentView(view);
            }
            loadingDialog.loading();
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
  //隐藏
  public static void hideLoading() {
        if (loadingDialog != null) {
            //直接取消加载框
            loadingDialog.cancel();
        }
    }

参考:https://blog.csdn.net/linweij/article/details/72873207

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容