美文网首页
Android 仿IOS加载框(二)

Android 仿IOS加载框(二)

作者: 因为我的心 | 来源:发表于2020-06-01 17:26 被阅读0次

    一、前言:

    自定义的加载框偶尔会有Bug,我们可以采用第三方轮子来实现Android 的加载框。
    项目地址:https://github.com/fingerth/FingerthAndroidUtils 点击

    二、项目引入:

    1. 项目引入:

    1. 添加仓库地址
    allprojects {
            repositories {
                ...
                maven { url 'https://jitpack.io' }
            }
        }
    
    1. 添加jar包
    dependencies {
                implementation 'com.github.fingerth:FingerthAndroidUtils:1.0.3'
        }
    

    三、项目使用:

    1、代码1

    SYSDiaLogUtils.showSuccessDialog(this, false);
    
    • 效果图1


      图片.png

    2、代码2

    SYSDiaLogUtils.showSuccessDialog(this, "操作成功", "恭喜你,操作成功了!", "OK", false);
    
    • 效果图2


      图片.png

    3、代码3

    SYSDiaLogUtils.showInfoDialog(this, "操作提示", "很抱歉,你還不够硬气!", "取消", false);
    
    • 效果图3


      图片.png

    4、代码4

    SYSDiaLogUtils.showErrorDialog(this, "错误警告", "很抱歉,你这次真的是错了,请重新试试!", "取消", false);
    
    • 效果图4


      图片.png

    5、代码5

    SYSDiaLogUtils.showSystemProgressDialog(this, "标题", "", false, new DialogInterface.OnCancelListener() {
                @Override
                public void onCancel(DialogInterface dialog) {
                    Toast.makeText(MainActivity.this, "点击消失", Toast.LENGTH_SHORT).show();
                }
            });
    
    • 效果图5


      图片.png

    6、代码6

    SYSDiaLogUtils.showProgressDialog(this, SYSDiaLogUtils.SYSDiaLogType.IosType, "加載中...", false, new DialogInterface.OnCancelListener() {
                @Override
                public void onCancel(DialogInterface dialog) {
                    Toast.makeText(MainActivity.this, "点击消失", Toast.LENGTH_SHORT).show();
                }
            });
    
    • 效果图6


      图片.png

    7、代码7

    SYSDiaLogUtils.showProgressBar(this, "", "", false, new DialogInterface.OnCancelListener() {
                @Override
                public void onCancel(DialogInterface dialog) {
                    if (SYSDiaLogUtils.getProgressBar() < 100) {
                        if (asyncTaskProgress != null) {
                            asyncTaskProgress.cancel(true);
                        }
                        SYSDiaLogUtils.showErrorDialog(MainActivity.this, "下载失败", "由于你取消了下载,请致下载失败!", "确定", false);
                    }
                }
            });
            asyncTaskProgress = new AsyncTaskProgress();
            asyncTaskProgress.execute("");
    
    • 效果图7


      图片.png

    8、代码8

    SYSDiaLogUtils.showProgressBar(this, SYSDiaLogUtils.SYSDiaLogType.HorizontalWithNumberProgressBar, "正在加载...");
            asyncTaskProgress = new AsyncTaskProgress();
            asyncTaskProgress.execute("");
    
    • 效果图8


      图片.png

    9、代码9

    SYSDiaLogUtils.showProgressBar(this, SYSDiaLogUtils.SYSDiaLogType.RoundWidthNumberProgressBar, "正在加载...");
            asyncTaskProgress = new AsyncTaskProgress();
            asyncTaskProgress.execute("");
    
    • 效果图9


      图片.png

    10、代码10

    SYSDiaLogUtils.showConfirmDialog(this, true, SYSDiaLogUtils.SYSConfirmType.Tip, "标题", "我是提示!", new SYSDiaLogUtils.ConfirmDialogListener() {
                @Override
                public void onClickButton(boolean clickLeft, boolean clickRight) {
                    if (clickLeft) {
                        Toast.makeText(MainActivity.this, "left", Toast.LENGTH_SHORT).show();
                    } else if (clickRight) {
                        Toast.makeText(MainActivity.this, "right", Toast.LENGTH_SHORT).show();
                    }
                }
            });
    
    
    • 效果图10


      图片.png
    • AsyncTaskProgress 的代码
    private AsyncTaskProgress asyncTaskProgress;
    
     private class AsyncTaskProgress extends AsyncTask<String, Integer, Object> {
            @Override
            protected void onPreExecute() {
                super.onPreExecute();
            }
    
            @Override
            protected Object doInBackground(String... params) {
                for (int i = 0; i < 100; i++) {
                    SystemClock.sleep(50);
                    publishProgress(i + 1);
                }
                return params;
            }
    
            @Override
            protected void onProgressUpdate(Integer... values) {
                //horizontal_bar.setProgress(values[0] % 100);
                SYSDiaLogUtils.setProgressBar(values[0] % 100);
                if (values[0] == 100) {
                    SYSDiaLogUtils.dismissProgress();
                    SYSDiaLogUtils.showSuccessDialog(MainActivity.this, false);
                }
                super.onProgressUpdate(values);
            }
    
            @Override
            protected void onPostExecute(Object o) {
                super.onPostExecute(o);
            }
        }
    }
    

    四、小结一下

    1. 对话框,我一般都用系统提供的了,自定义bug太多,没有Google提供的稳定。
    2. 其实我还写了很多方法,代码很简单,入门级。

    原文链接:https://blog.csdn.net/fingerth/article/details/76099182

    相关文章

      网友评论

          本文标题:Android 仿IOS加载框(二)

          本文链接:https://www.haomeiwen.com/subject/qluszhtx.html