介绍
在Android开发中通过使用视图实现进度条功能?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。
1。ProgressBarView1(支持拖动):
2。ProgressBarView2(不同进度值显示不同颜色,不支持拖拽):
代码不多,注释也比较详细,全部贴上了:
(一)ProgressBarView1:
/* * *自定义绚丽的ProgressBar。 */公开课ProgressBarView1扩展视图{/* * *进度条所占用的角度 */私有静态最终int ARC_FULL_DEGREE=300;/* * *弧线的宽度 */私人int STROKE_WIDTH;/* * *组件的宽,高 */私人int宽度、高度;/* * *进度条最大值和当前进度值 */私人浮动马克斯,进步;/* * *是否允许拖动进度条 */私人布尔draggingEnabled=false;/* * *绘制弧线的矩形区域 */私人RectF circleRectF;/* * *绘制弧线的画笔 */私人油漆progressPaint;/* * *绘制文字的画笔 */私人油漆textPaint;/* * *绘制当前进度值的画笔 */私人油漆thumbPaint;/* * *圆弧的半径 */私人int circleRadius;/* * *圆弧圆心位置 */私人int centerX centerY; 公共ProgressBarView1(上下文语境){ 超级(上下文); init (); } 公共ProgressBarView1(上下文语境,AttributeSet attrs) { 超级(上下文,attrs); init (); } 公共ProgressBarView1(上下文语境、AttributeSet attrs int defStyleAttr) { 超级(上下文、attrs defStyleAttr); init (); } 私人空间init () { progressPaint=new油漆(); progressPaint.setAntiAlias(真正的); textPaint=new油漆(); textPaint.setColor (Color.WHITE); textPaint.setAntiAlias(真正的); thumbPaint=new油漆(); thumbPaint.setAntiAlias(真正的);//使用自定义字体 textPaint.setTypeface (Typeface.createFromAsset (getContext () .getAssets (),“fangz.ttf")); } @Override 保护空白>/* * *自定义绚丽的ProgressBar。 */公开课ProgressBarView2扩展视图{/* * *进度条所占用的角度 */私有静态最终int ARC_FULL_DEGREE=300;//进度条个数 私有静态最终int数=100;//每个进度条所占用角度 私有静态最终浮ARC_EACH_PROGRESS=ARC_FULL_DEGREE * 1.0 f/(数- 1);/* * *弧线细线条的长度 */私人int ARC_LINE_LENGTH;/* * *弧线细线条的宽度 */私人int ARC_LINE_WIDTH;/* * *组件的宽,高 */私人int宽度、高度;/* * *进度条最大值和当前进度值 */私人浮动马克斯,进步;/* * *绘制弧线的画笔 */私人油漆progressPaint;/* * *绘制文字的画笔 */私人油漆textPaint;/* * *绘制文字背景圆形的画笔 */私人油漆textBgPaint;/* * *圆弧的半径 */私人int circleRadius;/* * *圆弧圆心位置 */私人int centerX centerY; 公共ProgressBarView2(上下文语境){ 超级(上下文); init (); } 公共ProgressBarView2(上下文语境,AttributeSet attrs) { 超级(上下文,attrs); init (); } 公共ProgressBarView2(上下文语境、AttributeSet attrs int defStyleAttr) { 超级(上下文、attrs defStyleAttr); init (); } 私人空间init () { progressPaint=new油漆(); progressPaint.setAntiAlias(真正的); textPaint=new油漆(); textPaint.setColor (Color.WHITE); textPaint.setAntiAlias(真正的); textBgPaint=new油漆(); textBgPaint.setAntiAlias(真正的); } @Override 保护空白>看完上述内容,你们掌握在Android开发中通过使用视图实现进度条功能的方法了吗?如果还想学到更多技能或想了解更多相关内容,欢迎关注行业资讯频道,感谢各位的阅读!在Android开发中通过使用视图实现进度条功能