最近做的一個小項目需要繪制一些折線圖,AChartEngine其實裡面包含很多圖,雖然是開源的,但畢竟不是自己寫的,而且項目稍有點龐大,有些東西修改起來還是得花點時間的,所以最後打算自己寫一個,參考了多看閱讀的閱讀時間曲線效果
下面這張是沒有中間"平均3小時/天"那個小條的效果
已經開源了,代碼放在github,地址是https://github.com/Steven-Luo/android-bezier-curve-chart
用法很簡單
布局文件少不了:
1 <com.cn.naive.lib.view.BezierCurveChart
2 android:id="@+id/bezier_curve_chart"
3 android:layout_width="match_parent"
4 android:layout_height="260dp"
5 android:layout_margin="10dp" />
Java代碼
復制代碼
1 List<BezierCurveChart.Point> points=new ArrayList<BezierCurveChart.Point>();
2 for(int i=0;i<10;i++) {
3 points.add(new Point(i, (float) (Math.random()*10)));
4 }
5 String tipText = "3 hours/day on average";
6
7 BezierCurveChart bezierCurveChart =
8 (BezierCurveChart) rootView.findViewById(R.id.bezier_curve_chart);
9 bezierCurveChart.init(points,
10 new String[] { "0:00", "6:00", "12:00", "18:00", "24:00" }, tipText);
復制代碼
上面那些數據點是使用隨機數模擬的,最關鍵的是BezierCurveChart的init方法,第一個參數是數據點,第二個是底部的標簽,最後一個參數是中部的提示條,不需要的話,把最後一個參數設置為null即可。