「View」ProgressBar
ProgressBar
是比较常见的用来显示进度的的控件,支持圆形和水平进度显示,通过扩展它可以实现大多数情况下的需求,不需要自己自定义控件,特此记录一下,本文主要介绍:
知识准备
用到了几个不常用的 shape
属性,当我们使用 ring
类型时:
1 | android:innerRadius 尺寸,内环的半径,单位 dp。 |
举个例子,假设我们有个 ProgressBar
宽度和高度都是 100dp
,想给他一个宽度为 2dp
的环形进度,那么:
1 | 先设置环半径 |
圆形、无进度、自定义颜色
圆形 ProgressBar
无进度,并自带了旋转效果,那怎么更改圆形进度的颜色,下面使用了一个渐变色作为进度条颜色,同样也可以使用更简单的纯色表示。
progress_circle.xml
1 | <?xml version="1.0" encoding="utf-8"?> |
在 xml
中使用它:
1 | <ProgressBar |
效果展示:
水平、带进度、自定义背景/进度颜色
水平进度条,可以设置背景、一级进度、二级进度的颜色,需要借助 layer-list
来实现;
progress_horizontal.xml
1 | <?xml version="1.0" encoding="utf-8"?> |
在 xml
文件中使用它:
1 | <ProgressBar |
效果展示:
圆形、带进度、自定义背景/进度颜色
首先定义进度颜色的的 xml
文件
progress_circle.xml
1 | <?xml version="1.0" encoding="utf-8"?> |
仅仅这样没有背景效果,我们单独做一个背景
progress_bg.xml
1 | <?xml version="1.0" encoding="utf-8"?> |
在 xml
中使用它:
1 | <ProgressBar |
效果展示:
圆形、带进度、自定义背景/进度颜色2
使用上面的方法比较好理解,但是写起来麻烦,需要写两个 xml
文件,而且不支持二级进度,我们理解了他的工作原理,可以使用 layer-list
来组合改写它;
1 | <?xml version="1.0" encoding="utf-8"?> |
在 xml
中使用它:
1 | <ProgressBar |
效果展示:
目前维护的几个项目,求 ✨✨✨✨
- SocialSdk 登录分享功能原生接入
- LightAdapter 轻量级适配器
- ImageEditor 图片处理,裁剪旋转,贴纸涂鸦,滤镜等
- WeexCube Weex 容器方案
- Kotlin 学习系列总结,共计 22 篇
- 本文链接: http://cdevlab.top/article/edb40764/
- 版权声明: 版权所有,转载请注明出处!
------ 本文结束 🎉🎉 谢谢观看 ------