android 扇形画图 扇形图绘制_canvas 文字颜色


上一篇文章我们使用Canvas绘制了WiFi信号,对arc方法有一定的了解了。

这篇我们添加一个工作中更加常用的场景-使用Canvas绘制数据扇形图。效果如下:


android 扇形画图 扇形图绘制_文本方法_02


分析扇形图

如图所示,我们需要准备:

  • 一组数据包含:颜色,描述文字,金额。
  • 以及arc方法。

了解canvas文本方法:

gd.font

gd.filltext("str",x,y)

gd.textAlign

gd.textBaseline设置垂直线对齐。

了解文本方法后呢,我们依然用第三篇绘制柱状图的面向对象的方式来绘制扇形图。

先准备一个div标签用来存放扇形图:


<!DOCTYPE html>


接着我们在按照分析定义data数据:


<


然后我们拿到div的宽高,id,保存至全局变量中,供canvas使用:


var


定义构造函数

为了使我们的代码能够复用,我们用面向对象的方式来绘制扇形图,定义一个PieChart函数:


function


方法写在原型上

configurePieChart函数定义在PieChart的原型上,依赖的两个函数作用是设置画布参数,扇形图的规格:


PieChart


创建canvas元素:


PieChart


设置画布参数id 宽高 数据:


PieChart


设置扇形图的圆心,半径比例:


PieChart


初始化函数以及所需要依赖的函数:


PieChart


模拟整理来自后台的数据:


PieChart


数据处理计算total数据总和用来算绘制扇形比例:


PieChart


因为绘制从12点位置顺时针绘制所以添加一个d2a方法:


PieChart


绘制扇形图:


PieChart


绘制小圆点,lcArr为二维数组,lcArr的某一项保存着小圆点的x,y坐标:


PieChart


绘制线条:


PieChart


绘制描述文字包含金额与消费类型:


PieChart


将绘制扇形图的各个方法,存放到draw函数中:


PieChart


最后调用构造函数,传入定义的全局变量:


var


总结:

我们了解了Canvas文本方法,逐步绘制扇形图,扇形图本身不难,分配扇形图各个点的坐标,是有一定难度的,在平常多了解些数学知识,会对自己有帮助的。

本篇内容到这里就结束了,下一篇我们将会绘制一个精美时钟。来巩固我们的基础知识。