自定义view————进度条
为了能向高级工程师进阶,还在默默的学习自定义view,今天给大家送上自定义view————进度条,注意哦!!!是带进度值的进度条条
首先分析效果图,由三部分组成,一个底部的全进度,一个进度变化的进度,一个进度值,接下来就去画
各种初始化
要画东西先把paint准备好
|
|
初始化好了,需要计算一下一个进度对应的宽度,这个宽度是在当进度值发生变化是去动态计算时要用的
|
|
画进度条
首先先把底部的背景进度条画出来
|
|
然后再画进度条,首先分析一下,进度条开始位置、结束位置、开始位置到结束位置
开始位置两种做法:
1)开始位置是否进度条占那么一点点位置
2)开始位置从零开始
结束位置:最大进度时是宽度减去一个padding(这里为了美观,使用来左右两边设置一样的padding)
开始位置到结束位置:当前进度*每一个进度对于的宽度+padding
接下来就要上菜了
|
|
最后就是画进度值的显示,首先分析一下,进度值开始位置、临界位置、开始位置到临界位置 (画文字的方法drawText())
开始位置:开始位置,设置从x=padding+10开始,距离y轴有个空格,样式好看一些
临界位置:当前进度对应的宽度+padding+文字的宽度>=宽度-padding 这是一个临界值,这决定的文字显示的好看,其实就是文字是否会被遮挡
开始位置到临界位置:当前进度对应的宽度+padding
|
|
进度条画好了,进度变化时调用进度条重绘
实际代码应用中,当进度值变化时,需要重新调用ondraw()
|
|
设置相关属性动态改变
attrs.xml
java
到此结束,自定义view————进度条已经写完了
|
|
代码中使用
|
|