最近作的一個小項目須要繪製一些折線圖,AChartEngine其實裏面包含不少圖,雖然是開源的,但畢竟不是本身寫的,並且項目稍有點龐大,有些東西修改起來仍是得花點時間的,因此最後打算本身寫一個,參考了多看閱讀的閱讀時間曲線效果,先看效果圖:android
下面這張是沒有中間"平均3小時/天"那個小條的效果git
已經開源了,代碼放在github,地址是https://github.com/Steven-Luo/android-bezier-curve-chartgithub
用法很簡單dom
佈局文件少不了:佈局
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便可。spa