Skip to content

Commit 68767bc

Browse files
committed
add the calculation
1 parent 7275213 commit 68767bc

File tree

1 file changed

+47
-1
lines changed

1 file changed

+47
-1
lines changed

holographlibrary/README.md

Lines changed: 47 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,8 @@ BarGraph.java:继承View类,负责柱状图的绘制。
3939

4040
- onDraw源码分析
4141

42+
1.绘制的样式定义(柱体颜色、宽度大小等属性)
43+
4244
```java
4345

4446
public void onDraw(Canvas ca) {
@@ -79,6 +81,32 @@ BarGraph.java:继承View类,负责柱状图的绘制。
7981

8082
```
8183

84+
2.绘制计算过程(详细看源码):
85+
86+
1)绘制x轴
87+
88+
2)确定柱体的数量
89+
90+
3)计算柱体所需的宽度
91+
92+
4)如果使用动画,柱体最大值(影响绘画的高度)使用动态计算的最大值
93+
94+
5)计算x轴上标签的字体的大小(不考虑动画状态,否则会导致字体抖动)
95+
96+
6)设置柱体边界
97+
98+
7)绘制柱体
99+
100+
8)创建选择区域
101+
102+
9)绘制标签
103+
104+
10)绘制柱体顶部的文字
105+
106+
11)限制总体宽度,防止弹出
107+
108+
12)若有使用后,设置监听,对进行动画更新
109+
82110
####4.2.2饼状图
83111
PieSlice.java: 扇形,构成饼状图的基本元素。封装了颜色,值,标题,路径以及区域等属性。
84112

@@ -88,6 +116,16 @@ PieGraph.java:继承View类, 负责绘制饼状图。
88116

89117
![](image/piegraphflow.png)
90118

119+
绘制计算过程(详细看源码):
120+
121+
1)若有背景图片,设置背景图片
122+
123+
2)设置扇形的开始的位置,大小,圆心
124+
125+
3)计算不同的扇形的大小,从上次结束的位置进行绘制,记录好该扇形结束的位置。重复此步骤,直到所有扇形绘制完成。
126+
127+
128+
91129
####4.2.3折线图:
92130
LinePoint.java:折线的最基本元素,两点构成一条直线,属性包括二维坐标,路径以及区域等属性。
93131

@@ -99,10 +137,18 @@ LineGraph.java: 继承View类,负责折线图的绘制。
99137

100138
![](image/linegraphflow.png)
101139

140+
绘制计算过程(详细看源码):
141+
142+
1)若需要填充,先对整个绘制范围内进行直线绘制,然后擦除折线上的直线。
143+
144+
2)绘制X轴
145+
146+
3)绘制折线
102147

148+
4)绘制折点
103149

104150
###5. 杂谈
105-
对于控件类的开源库,可以把重点放在与用户交互关联的触发器上。而这个开源库,也有开发者fork之后扩展得更加有趣。[->链接](https://bitbucket.org/danielnadeau/holographlibrary)
151+
其实,这个项目的代码并不适写的很好,但无碍我们的使用,有兴趣的同学可以重构一下。对于控件类的开源库,可以把重点放在与用户交互关联的触发器上。而这个开源库,也有开发者fork之后扩展得更加有趣。[->链接](https://bitbucket.org/danielnadeau/holographlibrary)
106152

107153
**延伸:**
108154

0 commit comments

Comments
 (0)