自定义VIew之圆形百分比效果
来源:互联网 发布:方媛的淘宝店 编辑:程序博客网 时间:2024/06/07 06:25
效果
首先看一下效果
思路
实现很简单,就是通过进度百分比来画一段圆弧:
1.画一个圆形,设置画笔线的宽度2.画一段圆弧,设置画笔颜色3.画另外一段圆弧4.开启线程通过标记切换画圆弧
public class CirCleView extends View { private Paint mPaint; private int mCircleWidth; private RectF mRect; private int mFirstColor; private int mSecondColor; private boolean mFirstDraw = true; private int mProgress = 0; public CirCleView(Context context) { this(context, null); } public CirCleView(Context context, AttributeSet attrs) { super(context, attrs); mFirstColor = Color.GREEN; mSecondColor = Color.BLUE; mCircleWidth = 30; mPaint = new Paint(); // 设置画笔 // 消除锯齿 mPaint.setAntiAlias(true); // 设置画笔宽度 mPaint.setStrokeWidth(mCircleWidth); // 设置画笔为空心 mPaint.setStyle(Paint.Style.STROKE); new Thread() { @Override public void run() { mFirstDraw = false; while (true) { mProgress++; if (mProgress == 360) { mProgress = 0; mFirstDraw = !mFirstDraw; } postInvalidate(); try { Thread.sleep(20); } catch (InterruptedException e) { e.printStackTrace(); } } } }.start(); } @Override protected void onDraw(Canvas canvas) { // 定义圆弧形状的界限 // 获取圆心坐标 int circle = getWidth() / 2; Log.d("ch", "circle " + circle); int redius = circle - mCircleWidth / 2; if (mRect == null) { // 定义圆弧的形状以及大小的界限 mRect = new RectF(circle - redius, circle - redius, circle + redius, circle + redius); } if (mFirstDraw) { // 画一段狐 mPaint.setColor(mFirstColor); canvas.drawCircle(circle, circle, redius, mPaint); mPaint.setColor(mSecondColor); canvas.drawArc(mRect, 0, mProgress, false, mPaint); } else { // 画一段狐 mPaint.setColor(mSecondColor); canvas.drawCircle(circle, circle, redius, mPaint); mPaint.setColor(mFirstColor); canvas.drawArc(mRect, 0, mProgress, false, mPaint); } }}
#
没啥好总结的,还是比较简单,一些细节没有优化,快一点了,睡觉觉!革命尚未成功,同志仍需努力!
0 0
- 自定义VIew之圆形百分比效果
- 自定义View实现圆形百分比加载的效果
- Android 自定义view --圆形百分比(进度条)
- Android 自定义view --圆形百分比(进度条)
- 【Android自定义view系列】圆形百分比进度条
- 自定义view圆形进度条,并改变百分比。
- Android 自定义View 圆形百分比进度条
- 自定义view 动态圆形有百分比
- 53.自定义View练习(一)圆形百分比控件
- 自定义View(三)-圆形进度条-百分比进度条
- 自定义View实现 android圆形统计图及百分比显示
- Android自定义View实现带百分比圆形进度条
- 自定义view之圆形进度条
- 自定义view之圆形ImageView
- 自定义View之圆形TextView
- 自定义view之圆形进度条
- 自定义view之圆形进度条
- 简单自定义View圆形呼吸效果
- 0-1背包问题
- 每日一记
- Java中导入、导出Excel
- 嵌入式开发第31、32天(项目2:用线程池实现大批量复制文件)
- 文章标题
- 自定义VIew之圆形百分比效果
- linux mips内核启动流程
- java生成word的几种方案
- Markdown 语法说明 (简体中文版)
- Vectors, Matrices and Tensors 在papers中的常规约定
- Java爬虫到一些总结和心得
- 10021---大众点评订单分库分表实践之路
- 【代码管理】GitHub超详细图文攻略 - Git客户端下载安装 GitHub提交修改源码工作流程 Git分支 标签 过滤 Git版本工作流
- 卷积理解与思考