您可以自定义视图(例如PieProgressView)或自定义Drawable(例如PieProgressDrawable).我采取了定制视图的方法,但是完全可行.

快速浏览Android的ProgressView源代码是一个非常复杂的实现.显然,他们涵盖了所有的基础,但你不必写一些复杂的东西.我们真的只需要两件事情:

>成员跟踪当前进度.

>根据当前进度绘制饼图的方法.

第一个很容易,只需保留一个成员字段来跟踪饼图的当前百分比.数字2有点复杂,但幸运的是,我们可以使用标准的画布绘制方法.

方便的是,Android的Canvas类提供了drawArc()的方法.你可以用它来获得你的饼干效果.假设我们将一个名为mPercent的成员字段的百分比存储为0到1之间的浮点数,则onDraw()方法可能如下所示:

@Override

protected void onDraw(Canvas canvas) {

final float startAngle = 0f;

final float drawTo = startAngle + (mPercent * 360);

// Rotate the canvas around the center of the pie by 90 degrees

// counter clockwise so the pie stars at 12 o'clock.

canvas.rotate(-90f, mArea.centerX(), mArea.centerY());

canvas.drawArc(mArea, startAngle, drawTo, true, mPaint);

// Draw inner oval and text on top of the pie (or add any other

// decorations such as a stroke) here..

// Don't forget to rotate the canvas back if you plan to add text!

...

}

以下是示例应用程序中完成的视图:

编辑

自从发布以来,我决定实际上没有理由实现自定义视图.你可以简单地使用一个drawable,它的level属性可以完成所需要的.我做了gist with the full drawable.

android 饼图进度框,如何创建循环进度条(饼图),如指标 – Android相关推荐

  1. 多次点击android版本出现棒棒糖,android – 为前棒棒糖设备创建循环显示

    首先,这是与 Create circular reveal for pre-Lollipop devices (Android)不同的问题 我正在使用那里提到的库来创建Circular Reveal, ...

  2. android return 如何跳出两个循环_关于不得不学的Android知识之消息机制

    概述 相信不管是出入Android,还是已开发多年的老司机们,肯定都对Android的Handler不会陌生,而它就是今天要介绍的Android消息机制中的一部分.在Android系统中,有两大特色利 ...

  3. 饼图的引导线怎么加_4步学会EXCEL复合条饼图制作方法,让统计结果更直观!

    饼图能够形象生动的展示各种类别数据的占比,在类别较多的情况下,单一饼图会显得很凌乱,降低了数据的对比效果,这个时候复合条饼图就可以让统计结果更直观,数据更清晰. 一.复合条饼图效果 复合条饼图的特点: ...

  4. Android列表控件选项中添加进度框ProgressBar实现

        今天有时间就学习了下在ListView.GridView列表项中清加ProgressBar,小马用最简单的代码实现可以通用的功能,人人都能看懂,哈哈,直接说下,如果你的适配器getView方法 ...

  5. Android下载文件(一)下载进度断点续传

    Android下载文件(一)下载进度&断点续传 索引 Android下载文件(一)下载进度&断点续传 Android下载文件(二)单任务多线程并发&断点续传(待续) Andro ...

  6. Android中使用AsyncTask实现文件下载以及进度更新提示

    Android提供了一个工具类:AsyncTask,它使创建需要与用户界面交互的长时间运行的任务变得更简单.相对Handler来说AsyncTask更轻量级一些,适用于简单的异步处理,不需要借助线程和 ...

  7. android进度条课设报告,Android开发之进度条ProgressBar的示例代码

    说明 ProgressBar一般用于显示一个过程,例如数据加载过程,文件下载进度,音乐播放进度等. 默认形式ProgressBar 默认方式下,ProgressBar显示为圆形进度,循环转圈,不显示具 ...

  8. 从零开始学PowerShell(8)创建一个进度条

    我相信不少人会遇到这类情况,通常在执行一些大批量操作时,代码正在后台持续执行,你又没有为每个细节设置详尽的输出的话,你也不知道到底是脚本卡死了还是正在运行,因为没有任何响应反馈. 应对这种情况,要是我 ...

  9. Android中的常用控件之进度条(ProgressBar)

    ProgressBar的常用属性 style(进度条的样式,默认为圆形:用style="?android:attr/progressBarStyleHorizontal"可以将进度 ...

最新文章

  1. CSP浏览器安全策略备忘
  2. c++工程师面试常见问题之c++中四种cast转换
  3. Spring组件扫描context:component-scan/使用详解
  4. 任意java程序都可以是servlet吗_C#从Java servlet中获取文件流实现任意文件下载
  5. 【DP】【Asia - Harbin - 2010/2011】【Permutation Counting】
  6. oracle未找到时区,解决ORA-01882:未找到时区区域%s
  7. Windows上基于快捷方式的Putty免密码登陆
  8. 飞信php接口 web service
  9. 一个非常适合IT团队的在线API文档、技术文档工具 (ShowDoc)
  10. Xamarin入门一 环境准备
  11. 安全学习木马查杀打卡第二十一天
  12. 一文教你玩转Mybatis,超详细代码讲解与实战
  13. 从零搭建Spring Boot脚手架(4):手写Mybatis通用Mapper
  14. 【报告分享】2020小红书年中美妆洞察报告.pdf(附下载链接)
  15. vs行尾不一致,是否将行尾标准化的问题
  16. JavaScript葵花宝典(基础)
  17. 实验七 二极管包络检波实验
  18. python3豆瓣电影排行榜爬取
  19. HTML5+CSS3网页模板
  20. Kong Basic Authentication 插件详解

热门文章

  1. RK3568平台开发系列讲解(音视频篇)如何把音视频流进行网络传输?
  2. 使用Python pip怎么升级pip
  3. 超级详细解析——字模
  4. 后浪HTML5推前浪Flash:2020,为何大家都不支持Flash了?
  5. HTML5游戏开发案例教程
  6. Matlab中的匿名函数如何使用?
  7. 刚刚开通,感受一下此地气氛
  8. 未来的计算机作文六百字,未来想象作文六百字
  9. 读书笔记2区块链与大数据
  10. MIME类型,Content-Type