前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >简单好看的Android圆形进度条对话框开源库

简单好看的Android圆形进度条对话框开源库

作者头像
哲洛不闹
发布2018-09-18 10:47:01
1.9K0
发布2018-09-18 10:47:01
举报
文章被收录于专栏:java一日一条

简介

本文介绍CircleProgressDialog开源库的使用及实现的详细过程,该开源库主要实现以下几个功能:

  • 自定义一个好看的圆形进度条,可直接在布局文件中使用,可设置圆环宽度、圆环颜色、圆环阴影大小等属性;
  • 实现自定义的dialog,用于用户等待时的显示,通过简单的代码即可直接调用显示,同时提供api进行颜色、文字等设置

通过本文可了解到自定义view的相关知识及自定义dialog的方法

github链接如下,觉得还可以请帮忙点下star~

github链接

使用效果

首先看下使用效果:

有两种使用方式

布局文件中使用

提供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的方法。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2016-08-04,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 java一日一条 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 简介
  • 使用效果
    • 布局文件中使用
      • 代码中使用,对话框形式弹出
      • 具体实现过程
        • 自定义view
          • 相关知识
          • 首先加入自定义view的属性
          • 编写自定义view–RotateLoading
        • 边写自定义dialog
          • 编写布局文件
          • 预设相关属性
          • 初始化配置
          • 调用显示对话框
          • 提供给用户的API
      • 总结
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档