一个简单好用的LoadingDialog

写在前面

还记得以前在网上看到过一个LoadingDialog,感觉还挺不错的,可惜只有一个Loading,配套的错误和正确的反馈都没,一直觉得挺遗憾的,今天花了一些时间把他补全了。今天上多说找了下,找到了原来我的评论,放上。我做的事就是增强LoadingDialog的功能,新增两个自定义View。今天收到了两位前辈不错的建议,后续更新即将到来~

感谢同学指出我后面反馈的圆的方向和之前的方向不一致的情况,已修复,因为截gif怪麻烦的,图就不改了。。。

展示一个loading dialog:

new LoadingDialog(this)
    .setLoadingText("加载中...")//设置loading时显示的文字
    .show();

loading.gif

展示一个loading dialog并在合适的时机返回正确或者错误的反馈给用户:

LoadingDialog ld = new LoadingDialog(this);
ld.setLoadingText("加载中")
         .setSuccessText("加载成功")//显示加载成功时的文字
         //.setFailedText("加载失败")
         .setInterceptBack(intercept_back_event)
         .setLoadSpeed(speed)
         .setRepeatCount(repeatTime)
         .setDrawColor(color)
         .show();

//在你代码中合适的位置调用反馈
ld.loadSuccess();
//ld.loadFailed();

loadSuccess.gif

gif

还是同样的蜜汁小圆点。。。因为不摸他 加载结束他就不录了,辣鸡AS。。。

如果你不想要这个动态画出来的效果,你也可以通过closeSuccessAnim()或者closeFailedAnim()关闭它:

LoadingDialog ld = new LoadingDialog(this);
ld.setLoadingText("加载中")
         .setSuccessText("加载成功")
         .setInterceptBack(intercept_back_event)
         .setLoadSpeed(speed)
         .closeSuccessAnim()
         .setDrawColor(color)
         .setRepeatCount(repeatTime)
         .show();

fail_no_anim.gif

提供你使用的一些方法:

    setSize(int size):可以通过这个来设置弹框的尺寸,首先我这要求长宽相等的,所以只给一个参数设置他的尺寸就行了。再者我在自定义View里也会把不同的长宽处理成一样的。在项目中有一个SizeUtils,在设置尺寸的时候注意用这个工具将dp转换成px。 show():展示你设置的loadingDialog close():关闭动画释放一些资源,关闭dialog setLoadingText(String msg):设置Loading时的文字 setSuccessText(String msg):设置Loading成功时文字 setFailed(String msg):设置Loading失败时的文字 loadSuccess():调用这个方法展示一个成功的反馈 loadFailed():调用这个方法展示一个失败的反馈 closeSuccessAnim():关闭成功反馈的动态绘制 closeFailedAnim():关闭失败反馈的动态绘制 setInterceptBack(boolean interceptBack):是否拦截用户back,如果设置为true,那么一定要调用close(),或者loadSuccess()、loadFailed()这二者中的一个,不然出现无限loading的情况我相信你不会想看到的。 getInterceptBack():返回dialog是否拦截的布尔值 setLoadSpeed(Speed speed):参数是一个枚举,一共两个值,SPEED_ONE是比较慢的,SPEED_TWO比前一个快一点,为毛不再加?处理起来比较麻烦... setDrawColor(int color):可以改变绘制的颜色,圆和里面的勾啊,叉啊的颜色,不建议你用,不一定好看。 setRepeatCount(int count):设置动态绘制的次数,比如你设置了值为1,那么除了加载的时候绘制一次,还会再绘制一次。如果你有这个需要,可以设置他的重绘次数。 setShowTime(long time):设置反馈结果窗口的展示时间,默认为1秒,如果有绘制过程,则从绘制完成之后算。

目前还有一些没完善,在后续的更新中搞定吧。 github地址:

如何在你的项目中使用

如何使用

Step 1. 把这玩意加到你的build.gradle里:

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

Step 2. 加上这个依赖

dependencies {
        compile com.github.ForgetAll:LoadingDialog:v1.0.1
}
经验分享 程序员 微信小程序 职场和发展