File tree Expand file tree Collapse file tree 1 file changed +47
-1
lines changed Expand file tree Collapse file tree 1 file changed +47
-1
lines changed Original file line number Diff line number Diff line change @@ -39,6 +39,8 @@ BarGraph.java:继承View类,负责柱状图的绘制。
39
39
40
40
- onDraw源码分析
41
41
42
+ 1.绘制的样式定义(柱体颜色、宽度大小等属性)
43
+
42
44
``` java
43
45
44
46
public void onDraw(Canvas ca) {
@@ -79,6 +81,32 @@ BarGraph.java:继承View类,负责柱状图的绘制。
79
81
80
82
```
81
83
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
+
82
110
####4 .2.2饼状图
83
111
PieSlice.java: 扇形,构成饼状图的基本元素。封装了颜色,值,标题,路径以及区域等属性。
84
112
@@ -88,6 +116,16 @@ PieGraph.java:继承View类, 负责绘制饼状图。
88
116
89
117
![ ] ( image/piegraphflow.png )
90
118
119
+ 绘制计算过程(详细看源码):
120
+
121
+ 1)若有背景图片,设置背景图片
122
+
123
+ 2)设置扇形的开始的位置,大小,圆心
124
+
125
+ 3)计算不同的扇形的大小,从上次结束的位置进行绘制,记录好该扇形结束的位置。重复此步骤,直到所有扇形绘制完成。
126
+
127
+
128
+
91
129
####4 .2.3折线图:
92
130
LinePoint.java:折线的最基本元素,两点构成一条直线,属性包括二维坐标,路径以及区域等属性。
93
131
@@ -99,10 +137,18 @@ LineGraph.java: 继承View类,负责折线图的绘制。
99
137
100
138
![ ] ( image/linegraphflow.png )
101
139
140
+ 绘制计算过程(详细看源码):
141
+
142
+ 1)若需要填充,先对整个绘制范围内进行直线绘制,然后擦除折线上的直线。
143
+
144
+ 2)绘制X轴
145
+
146
+ 3)绘制折线
102
147
148
+ 4)绘制折点
103
149
104
150
###5 . 杂谈
105
- 对于控件类的开源库,可以把重点放在与用户交互关联的触发器上。而这个开源库,也有开发者fork之后扩展得更加有趣。[ ->链接] ( https://bitbucket.org/danielnadeau/holographlibrary )
151
+ 其实,这个项目的代码并不适写的很好,但无碍我们的使用,有兴趣的同学可以重构一下。 对于控件类的开源库,可以把重点放在与用户交互关联的触发器上。而这个开源库,也有开发者fork之后扩展得更加有趣。[ ->链接] ( https://bitbucket.org/danielnadeau/holographlibrary )
106
152
107
153
** 延伸:**
108
154
You can’t perform that action at this time.
0 commit comments