自定义环形进度条
来源:互联网 发布:暗黑破坏神3数据库app 编辑:程序博客网 时间:2024/05/29 19:18
环形进度条
在app更新时需要用到这样一个环形进度条,不是很难,自己动手写了一个。
效果图如下:
贴出关键代码
- 重写onDraw( )方法
@Override protected void onDraw(Canvas canvas) { super.onDraw(canvas); //绘制圆环背景 RectF rectF = new RectF(0 + rpPaint.getStrokeWidth() / 2, 0 + rpPaint.getStrokeWidth() / 2, raduis * 2 - rpPaint.getStrokeWidth() / 2, raduis * 2 - rpPaint.getStrokeWidth() / 2); canvas.drawArc(rectF, 0, 360, false, rbPaint); //绘制圆环进度条 canvas.drawArc(rectF, -90, angle, false, rpPaint); //绘制进度文字 float x = raduis - txtPaint.measureText(txt) / 2; Paint.FontMetrics fontMetrics = txtPaint.getFontMetrics(); float dy = -(fontMetrics.descent + fontMetrics.ascent) / 2; float y = raduis + dy; canvas.drawText(txt, x, y, txtPaint); }
通过修改drawArc (RectF oval, float startAngle, float sweepAngle, boolean useCenter, Paint paint)方法中sweepAngle达到绘制的动画效果。
另外还自定义了几个属性供设置环形进度条的样式:
txtsize – 设置进度条中间字体的大小
txtcolor – 设置进度条中间字体的颜色
rbColor – 设置进度条背景环形的颜色
rpColor – 设置进度条的颜色
roundWidth – 设置进度条的宽度配置文件中的代码
<com.my.roundpro.RoundProView xmlns:app="http://schemas.android.com/apk/res-auto" android:id="@+id/roundview" android:layout_width="150dp" android:layout_height="150dp" android:layout_centerInParent="true" app:rbColor="@android:color/darker_gray" app:roundWidth="20dp" app:rpColor="@android:color/holo_orange_dark" app:txtcolor="@color/colorPrimaryDark" app:txtsize="30dp" />
简单的贴了一下代码,方便使用。代码链接:
https://github.com/markfeng8/RoundPro
记录学习,仅供参考
阅读全文
0 0
- 自定义环形进度条
- Android自定义环形进度条
- android 自定义 环形进度条
- 自定义环形进度条
- 自定义view-环形进度条
- 自定义view-环形进度条
- 自定义渐变环形进度条。
- 自定义环形进度条
- 自定义环形进度条
- 自定义的环形进度条样式
- 自定义多进度环形进度条
- android 简单自定义环形进度条
- 自定义Drawable实现环形进度条.
- Android自定义控件实现环形播放进度条
- Android自定义控件实现环形播放进度条
- Android自定义View之实现环形进度条
- iOS 自定义控件 progressView(环形进度条)
- iOS 自定义控件 progressView(环形进度条)
- SEO的瞬间决动影响力因素
- Java桥接模式
- 程序员创业会面临什么困境?
- 不同页面cookie删除没反应
- 【android-architecture】todo-mvp
- 自定义环形进度条
- idea svn 无法上传和更新
- Oracle通过PL/SQL工具导出/导入excel表格
- php 设置临时内存和超时设置脚本最大执行时间
- thymeleaf快速入门大概
- plt.imshow(image)不顯示圖片
- ACM (8) 一种排序
- spring中配置<mvc:default-servlet-handler />后必须配置<mvc:annotation-driven/>的问题
- 用最少的代码做到数组去重、排序