简单好看的Android圆形进度条对话框开源库
简介
本文介绍CircleProgressDialog开源库的使用及实现的详细过程,该开源库主要实现以下几个功能:
自定义一个好看的圆形进度条,可直接在布局文件中使用,可设置圆环宽度、圆环颜色、圆环阴影大小等属性;
实现自定义的dialog,用于用户等待时的显示,通过简单的代码即可直接调用显示,同时提供api进行颜色、文字等设置
通过本文可了解到自定义view的相关知识及自定义dialog的方法
github链接如下,觉得还可以请帮忙点下star~
使用效果
首先看下使用效果:
有两种使用方式
布局文件中使用
提供loading_color、loading_width、shadow_offset进行设置
代码中使用,对话框形式弹出
如果直接采用默认设置直接调用以下代码即可
当然,还可以进行相关属性的设置,同时在等待的过程中可根据程序运行情况动态改变提示文字的内容及颜色
当然在使用前需先导入该库,仅需加入两行代码:
在工程的 build.gradle中加入:
module的build.gradle中加入依赖:
具体实现过程
自定义view
相关知识
绘制弧:
drawArc (RectF oval, float startAngle, float sweepAngle, boolean useCenter, Paint paint)
oval是RecF类型的对象,其定义了椭圆的形状
startAngle指的是绘制的起始角度,钟表的3点位置对应着0度,如果传入的startAngle小于0或者大于等于360,那么用startAngle对360进行取模后作为起始绘制角度。
sweepAngle指的是从startAngle开始沿着钟表的顺时针方向旋转扫过的角度。如果sweepAngle大于等于360,那么会绘制完整的椭圆环。如果sweepAngle小于0,那么会用sweepAngle对360进行取模后作为扫过的角度。
useCenter是个boolean值,如果为true,表示在绘制完环之后,用椭圆的中心点连接环上的起点和终点以闭合环;如果值为false,表示在绘制完环之后,环的起点和终点直接连接,不经过椭圆的中心点。
设置矩形:
RectF rectF = new RectF(100, 100, 300, 300);
这四个参数分别代表的意思是:left top right bottom 左 上 右 下
left : 矩形左边的X坐标
top: 矩形顶部的Y坐标
right : 矩形右边的X坐标
bottom: 矩形底部的Y坐标
其实就是矩形的左上角和右下角的坐标值
首先加入自定义view的属性
我们定义了颜色,宽度,阴影偏移大小,是否显示等属性,format是值该属性的取值类型:
一共有:string,color,demension,integer,enum,reference,float,boolean,fraction,flag;
编写自定义view–RotateLoading
预设相关属性
获取自定义属性
Paint初始化
初始化绘制弧形所需的RectF
重写onDraw,绘出图形
至此,圆形进度条就完成了,完整的代码可在github上查看
边写自定义dialog
编写布局文件
就是放入刚才自定义的RotateLoading,同时在下面放入一个文本
预设相关属性
初始化配置
调用显示对话框
加载刚才的布局文件,调用自定义view的显示
提供给用户的API
包括相关属性的set方法及两个改变文字属性的方法
ok,至此,自定义dialog也完成了。
总结
本文介绍了CircleProgressDialog开源库的使用及其实现方法,借此也介绍了自定义view及自定义dialog的方法。