好吧,这又是一个圆形进度条!
2016-06-05 11:20
239 查看
项目需要,需要一个圆形渐变进度条,自己写了一个,完事后完善了一下细节。先上图
关键代码如下:
关键代码就这些,具体看源码吧:https://github.com/HzwSunshine/ProgressView
关键代码如下:
mPaint.setAntiAlias(true); rectF.set(strokeWidth / 2f, strokeWidth / 2, width - strokeWidth / 2, width - strokeWidth / 2); mPaint.setStrokeWidth(strokeWidth); mPaint.setStyle(Paint.Style.STROKE); //画环形底色 mPaint.setColor(underColor); canvas.drawArc(rectF, 0, 360, false, mPaint); //画环形 setShaderColor(); //mPaint.setStrokeCap(Paint.Cap.ROUND); mPaint.setStrokeWidth(strokeWidth - lineWidth); canvas.drawArc(rectF, 270, angle, false, mPaint); mPaint.setShader(null);//画完后清除渲染 //画中间的文字 mPaint.setTextSize(indexSize); mPaint.setStyle(Paint.Style.FILL); mPaint.setColor(percentColor); int number = (int) (angle * 100 / 360f); number = number < 0 ? 0 : number; number = number > 100 ? 100 : number; String index = String.valueOf(number); float indexW = mPaint.measureText(index); mPaint.getTextBounds(index, 0, 1, mRect);//获取中间数字的高度 float indexH = mRect.height(); if (isFirst) { indexFinalH = indexH; isFirst = false; } canvas.drawText(index, (width - indexW) / 2.0f, (height + indexFinalH) / 2.0f, mPaint); //画百分比的符号 mPaint.setTextSize(symbolSize); canvas.drawText("%", (width + indexW) / 2.0f, (height + indexFinalH) / 2.0f, mPaint);
private void setShaderColor() { int[] color = new int[]{Color.parseColor("#FFBF80"), Color.parseColor("#FF8080")}; color = shaderColor == null ? color : shaderColor; //使用矩阵将Shader旋转-90度 mMatrix.setRotate(-90, getWidth() / 2, getHeight() / 2); Shader shader = new SweepGradient(getWidth() / 2, getHeight() / 2, color, null); shader.setLocalMatrix(mMatrix); mPaint.setShader(shader); }
关键代码就这些,具体看源码吧:https://github.com/HzwSunshine/ProgressView
相关文章推荐
- jquery彩色投票进度条简单实例演示
- photoshop去除渐变色上的文字的简单方法
- 爆炸式的JS圆形浮动菜单特效代码
- jquery模拟进度条实现方法
- PHP设置进度条的方法
- JavaScript 渐变效果页面图片控制第1/2页
- jquery实现模拟百分比进度条渐变效果代码
- JavaScript淡入淡出渐变简单实例
- js ajax加载时的进度条代码
- JS+CSS实现的漂亮渐变背景特效代码(6个渐变效果)
- javascript实现简单的进度条
- js实现按钮颜色渐变动画效果
- js插件YprogressBar实现漂亮的进度条效果
- ajax 异步上传带进度条视频并提取缩略图
- 基于jquery步骤进度条源码分享
- jquery实现两个图片渐变切换效果的方法
- jquery插件NProgress.js制作网页加载进度条
- jQuery实现进度条效果代码
- jQuery简单实现提交数据出现loading进度条的方法
- OS X开发:NSProgressIndicator进度指示器控件