图表网上有很多第三方工具,但是往往都会受到一些限制,于是用canvas画pieChart.

  1. Java代码
  2. // 定义一些常量
  3. int areaX = 1;
  4. int areaY = 22;
  5. int areaWidth;
  6. int areaHight;
  7. //pie上的颜色
  8. int colors[];
  9. //占的比例
  10. int percent[];
  11. int tempAngle = 0;
  12. private Bitmap bitmap;
  13. /**
  14. * 屏幕中间点的X、Y坐标
  15. */
  16. private float centerX,centerY;
  17. /**
  18. * 大园半径
  19. */
  20. private float bigR;
  21. private Canvas canvas;
  22. Bitmap OverlayBitmap;
  23. /**
  24. * 屏幕的宽
  25. */
  26. private int width;
  27. /**
  28. * 屏幕的高
  29. */
  30. private int height;
  31. @Override
  32. protected void onDraw(Canvas canvas) {
  33. super.onDraw(canvas);
  34. this.canvas = canvas;
  35. centerX = width / 2;
  36. centerY = height / 2;
  37. bigR = (width - 80) / 2;
  38. areaWidth = width - 2;
  39. areaHight = height - 2;
  40. Paint paint = new Paint();
  41. paint.setColor(Color.RED);
  42. paint.setStyle(Style.FILL);
  43. paint.setAntiAlias(true);
  44. paint.setStrokeWidth(1);
  45. canvas.save();
  46. canvas.rotate(mDegree);
  47. canvas.translate(centerX, centerY);
  48. for (int j = 0; j < percent.length; j++) {
  49. paint.setColor(colors[j]);
  50. canvas.drawArc(new RectF(-bigR, -bigR,bigR, bigR), tempAngle,percent[j],
  51. true,paint);tempAngle += percent[j];
  52. }
  53. canvas.restore();
  54. }

把在饼图上占的各个部分,由在初始化此view时传参,代码便灵活使用

  1. Java代码
  2. int[] colors =new int[]{Color.rgb(255, 0, 68),Color.rgb(4, 227, 66),Color.rgb(120, 120, 120),Color.rgb(255, 145, 0)};
  3. int[] percent = new int[]{50,140,100,70};
  4. PieView pieView = new PieView(this,width,height,colors,percent);

percent 在饼图上所占的比例,无论里面有几个元素,总和都必须是360,不然画出来是有空缺的.

  1. Java代码
  2. int mDegree = 0; // 偏移量
  3. int mPreDegree = 0; // 上次偏移量
  4. public void calcDegree(boolean bFlag) {
  5. if (mDegree >= 360) {
  6. mDegree -= 360;
  7. }
  8. if (mDegree < 0) {
  9. mDegree += 360;
  10. }
  11. mPreDegree = mDegree;
  12. }
  13. @Override
  14. public boolean onKeyDown(int keyCode, KeyEvent event) {
  15. // TODO Auto-generated method stub
  16. switch (keyCode) {
  17. //顺时针转动
  18. case KeyEvent.KEYCODE_DPAD_LEFT:
  19. mDegree -= 6;
  20. calcDegree(false);
  21. postInvalidate();
  22. break;
  23. //逆时针转动
  24. case KeyEvent.KEYCODE_DPAD_RIGHT:
  25. mDegree += 6;
  26. calcDegree(false);
  27. postInvalidate();
  28. break;
  29. default:
  30. break;
  31. }
  32. return super.onKeyDown(keyCode, event);
  33. }

本文转自06peng 51CTO博客,原文链接:http://blog.51cto.com/06peng/963352,如需转载请自行联系原作者

PieChart 饼图相关推荐

  1. Android PieChart 饼图控件

    今天写一个饼图自定义View的文章.由于公司的项目需要用到饼图,UI给的设计图和自己找的一个饼图框架的标题位置不符,所以就自己画了一个. 1,使用预览 PieChart mChart mChart = ...

  2. android piechart饼图内容,MPAndroidChart PieChart为什么只有在点击了饼图之后才会显示颜色?...

    设置数据的代码如下.如果一个数据占了100时,饼图就会不显示颜色.只有点击一下饼图才会显示颜色,请问这是怎么回事儿呢? private void setData(int count, float ra ...

  3. piechart 文档 android,Android饼图 PieChart

    PieChart 饼图,android 图表.会根据定义PieChartView的大小自动居中,所以如果要调整位置,只需要在xml更改PieChartView位置大小即可. 1.先看一下效果图: 展示 ...

  4. label mpchart 饼图_Android MPChart—饼图-Go语言中文社区

    第三方资源库MPChart如何添加到项目中就不说了,不知道的网上搜一下,很多. 本篇主要说明MPChart中PieChart(饼图)是如何调用实现的. 一.布局文件 android:id=" ...

  5. Java输出PPT文件(三) - 饼图数据替换

    Java输出PPT文件(三) - 饼图数据替换 文章目录 Java输出PPT文件(三) - 饼图数据替换 0. 前言 1. 依赖 2. 代码 3. 测试 3.1 饼图数据 3.2 模板准备 3.3 替 ...

  6. Angular2组件与Echarts饼状图交互之饼图制作

    一.前言 1.基于ng4项目 2.组件包括:根组件app和饼状图组件echart 二.饼状图开发过程 1.添加插件 echart cnpm install echarts --save 2.创建组件 ...

  7. java使用poi绘制折线图和饼图(用数据绘制和使用excel生成的表格数据)

    完整代码在码云地址: https://gitee.com/Min-Duck/line_chart.git 多线折线图 单线折线图 饼图 工具类 import com.gideon.entity.Cha ...

  8. Android 第三方图表类 MPChart 的使用

    先看看条形图的的效果还不错是吧,实现这样的效果很合适呢! 还有折线图.饼图很多效果 效果不错对吧~ 下面我们就先来看看条形图的实现方法吧! 第一步: 引入第三方包 MPChart 如果你碰巧看过我之前 ...

  9. 【eoe教程】Android中自定义视图的绘制方法

    原文链接 :http://android.eoe.cn/topic/ui 自定义视图最重要的部分是它的外观.你可以根据应用的需求简单或复杂的实现它. 这个教程包含了最常见的操作. 重写onDraw() ...

最新文章

  1. 小明分享|sigmstar SSD201/SSD202 针对RGB的LCD屏配置操作说明分享
  2. wxWidgets:wxEditableListBox类用法
  3. 你可能过于高估了机器学习算法能力,带你解读鲜为人知的数据泄露问题
  4. 【iVX 初级工程师培训教程 10篇文拿证】04 画布及我和 iVX 合照
  5. bootstrapV4.6.0内间距、外间距(官方hack类css代码)-解读篇
  6. Cover Protocol发起新提案,为Nexus Mutual提供保险覆盖
  7. Android-JNI编程-图文解析
  8. 保存命令行输出信息到log的方法(ubunut下和arm-linux下有效)
  9. python100例图案_python100例 21-30
  10. xshell 中使用vim 显示Xmanager运行失败:
  11. 第一财经周刊:硅谷就是这样
  12. matlab 关于interpreter的使用
  13. 电脑怎么远程控制另一台电脑
  14. 发明计算机作文300字,关于科学发明的作文300字(共7篇)
  15. 区块链PoP(Proof of Peer)共识介绍
  16. java:布局方法(网格布局)
  17. Thread.setDaemon详解
  18. 微信支付SDK的使用
  19. 电脑服务器独立显卡显示配置,电脑显卡装完驱动,英伟达显示设置不可用解决方发...
  20. html5 canvas模拟的爆炸效果

热门文章

  1. 流量卡物联网卡管理平台源码|PHP管理系统源码
  2. 蓝星二开某微商城源码+搭建教程
  3. jsp里加java代码,利用静态内部类为您的代码添加辅助功能-JSP教程,Java技巧及代码...
  4. java 证书公钥 私钥_ssl - 在Java Key中导入私钥/公钥证书对
  5. 话费直充/三网直冲/联通直充/电信直充/移动直充/系统源码
  6. 唯美动态个人404单页HTML源码
  7. 三级菜单 ajax 已经测试成功
  8. Samba 和Shell Script 的应用
  9. UITableView 系列三 :分类显示和改变外观 (实例)
  10. 应用程序挂起、复原与终止— IOS开发