为了账号安全,请及时绑定邮箱和手机立即绑定

一个简单好用的LoadingDialog

标签:
Android

写在前面

还记得以前在网上看到过一个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地址:https://github.com/ForgetAll/LoadingDialog

update:v1.0.2  -> 

如何设置默认的样式,并使之影响全局:提供了一个StyleManager类,通过提供的方法设置一些属性,请在application里进行这个初始化工作:

StyleManager s = new StyleManager();  
//在这里调用方法设置s的属性//code here...s.Anim(false).repeatTime(1).contentSize(-1).intercept(true);  
LoadingDialog.initStyle(s);

更多的属性设置可以参考类->StyleManager

如何与Rx搭配使用?

项目的sample里有一个使用Rx的例子,各位可以参考一下,这个例子来自于热心的前辈——猫哥, 感谢猫哥对于我的大力支持~还有越越的一些建议,恩,感觉还有一些事没做完,留在以后的版本吧~(flag已立)。当然了,我这说到底只是个dialog而已,我并没有在lib里面依赖rxjava,如果有问题欢迎在github上提issue,也欢迎各位提交pr。 

原文链接:http://www.apkbus.com/blog-857758-62578.html

点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消