自定义 ProgressBar
自定义一个ProgressBar,按照自定义View的流程来进行。
因为我们只是需要做一个外表比系统控件更酷炫的progressBar,它的功能不会发生改变,所以我们创建一个HorizontalProgress类,让它继承ProgressBar,这样我们就不用自己去实现一些ProgressBar本身需要的方法了。
第一步:自定义属性的声明和获取
按照想要实现的自定义progressBar的效果,我们可以确定我们需要的自定义属性:
- 未完成进度条颜色(文字右侧)
- 未完成进度条高度
- 已完成进度条颜色(文字左侧)
- 已完成进度条高度
- 字体的大小
- 字体颜色
- 字体与两侧进度条的间距
基本上就是这些,然后在res/values/attrs.xml中
<resources>
<declare-styleable name="HorizontalProgress">
//未完成进度条颜色
<attr name="progress_unreach_color" format="color" />
//未完成进度条高度
<attr name="progress_unreach_height" format="dimension" />
//已完成进度条颜色
<attr name="progress_reach_color" format="color" />
//已完成进度条高度
<attr name="progress_reach_height" format="dimension" />
//字体颜色
<attr name="progress_text_color" format="color" />
//字体大小
<attr name="progress_text_size" format="dimension" />
//文字与进度条的间距