一、前言
Android 自定义 View 是高级进阶不可或缺的内容,日常工作中,经常会遇到产品、UI 设计出花里胡哨的界面。当系统自带的控件不能满足开发需求时,就只能自己动手撸一个效果。
本文就带自定义 View 初学者手动撸一个效果,通过自定义 View 实现圆形进度条功能,每行代码都有注释,保证易懂,看不懂你留言打我!!!
二、实现效果
1、源码下载:点击下载
2、效果图展示
3、步骤分析
实现以上效果,主要分为四个步骤:
- 自定义属性
- 绘制圆环
- 绘制圆弧
- 更新进度条
- 绘制进度百分比
三、代码实现
1、自定义属性
为了实现绚丽多彩的环形进度条,将颜色、尺寸、风格等属性抽离自定义属性,这样就可以直接在 xml 文件中设置,根据项目徐需求可以更方便使用。这里将自定义属性的步骤详解说明一下:
- 在 res/values 文件夹下新建 attrs.xml,将需要自定义的属性申明定义:
<attr name="annulusColor" format="color"/>//圆环颜色
<attr name="loadColor" format="color"/>//环形进度条加载颜色
<attr name="annulusWidth" format="dimension"/>//圆环宽度
<attr name="progress" format="integer"/>//圆环进度
<attr name="textColor" format="color"/>//文本颜色
<attr name="textSize" format="dimension"/>//文本字体大小
<attr name="progressType">//环形进度条类型:0.实心 1.空心
<enum name="fill" value="0"/>
<enum name="stroke" value="1"/>
</attr>
<attr name="isShowText">//是否显示文本:0.显示 1.不显示
<enum name="yes" value="0"/>
<enum name="no" value="1"/>
</attr>
<declare-styleable name="AnnulusCustomizeView">
<attr name="annulusColor"/>
<attr name="loadColor"/>
<attr name="annulusWidth"/>
<attr name="progress"/>
<attr name="textColor"/>
<attr name="textSize"/>
<attr name="progressType"/>
<attr name="isShowText"/>