在忙過一點時間項目需求後,我胡漢三又回來了。首先謝謝你們對我以前作的儀表盤圖表的喜歡(手動乖巧),雖然我作的仍是有不少不足,可是大家讓我有動力繼續去嘗試寫些其餘圖表。android
首先附上傳送門:git
Github傳送門,內有詳細APIgithub
儀表盤控件仿芝麻信用canvas
而後來看看此次帶了什麼東西:api
首先看下如何使用bash
首先在佈局添加你須要的圖表控件佈局
<com.github.iron.chart.pie.PieView1
android:id="@+id/pie1"
android:layout_width="150dp"
android:layout_height="150dp"
android:layout_centerHorizontal="true"/>
複製代碼
而後給他設置數據,設置數據方法以下post
//設置數據 values:數據 name:名稱 colors:顏色 anim:是否開啓動畫 (不設置顏色的話,顏色會隨機)
setData(float[] values, boolean anim)
setData(float[] values, int[] colors, boolean anim)
setData(float[] values, String[] name, boolean anim)
setData(float[] values, String[] name, int[] color, boolean anim)
複製代碼
若是有其餘個性化的定製,能夠查看目前的API是否知足需求或者本身去實現。動畫
那如何實現一個屬於本身的餅圖,首先看一下在BasePieView
中有什麼方法須要咱們去實現的:ui
protected abstract void initView();
protected abstract void initPieRect(float radius);
protected abstract void drawPieArc(Canvas canvas, String value,String percent, String name, int color, float arcStartAngle, float sweepAngle);
protected abstract void drawTitle(Canvas canvas,String title,String totalValue);
複製代碼
而後讓對一個個方法進行解析,首先initView()
和字面意思同樣,就是進行數據和畫筆初始化操做。
initPieRect(float radius)
初始化餅圖的區域。
drawPieArc(Canvas canvas,String value, String percent, String name, int color, float arcStartAngle, float sweepAngle)
這個方法讓咱們一個個參數的來看下,value
也就是進行格式化後的數值,percent
百分比,name
名稱,color
顏色。能夠根據本身需求繪製想要顯示的數據。
drawTitle(Canvas canvas,String title,String totalValue)
繪製標題和總的數值,固然不想繪製的話能夠忽略。
須要注意餅圖控件的中心座標爲(0,0)
其實在BasePieView
裏已經處理了不少邏輯,像我在Style1的餅圖中,除去初始化方面的代碼,繪製相關代碼就10句不到。
其實在作這一塊的時候,我在考慮是把他放在餅圖控件裏面仍是單獨抽成一個控件好,到最後我仍是抽成了單獨一個控件(雖然我如今也不肯定這樣好很差),個人考慮是這樣能夠更方便進行位置或者顯示相關配置。而這個控件我也提供了好比setColumnNumber(int number)
來控制列數等。