標籤:
在 android開源圖表庫MPAndroidChart文檔翻譯(中) 介紹了設定資料,設定顏色,軸的格式化,圖例,動態修改資料。這篇文章繼續翻譯MPAndroidChart文檔剩餘內容。
十七、ChartData 類
這個WIKI條目的意圖是更好的介紹MPAndroidChart的資料模型。
ChartData類是所有圖表資料類的基類,例如LineData,BarData等等,通過圖表的setData方法提供表格資料。
public class LineData extends ChartData { ...以下提到的方法是在ChartData類中實現,因此可以被用於所有的子類。
資料樣式setValueTextColor(int color): 設定資料文本顏色
setValueTextColors(List colors): 設定資料文本顏色list
setValueTextSize(float size): 設定資料文本字型大小
setValueTypeface(Typeface tf): 設定資料字型
setValueFormatter(ValueFormatter f): 格式化資料
setDrawValues(boolean enabled): 啟用資料的繪製
擷取屬性相關方法getDataSetByIndex(int index): 擷取固定索引的DataSet
contains(Entry entry): 判斷是否包含某一條目。執行效率很低。
contains(T dataSet): 判斷是否包含dataset
清除資料clearValues(): 移除DataSet對象所有的值,不會影響x軸的值
高亮資料setHighlightEnabled(boolean enabled): 是否允許高亮顯示
setDrawVerticalHighlightIndicator(boolean enabled): 是否啟用垂直方向上的高亮
setDrawHorizontalHighlightIndicator(boolean enabled): 是否啟用水平方向上的高亮
十八、ChartData的子類BarData 類(橫條圖資料)setGroupSpace(float percent): 不同資料集的條目之間佔一個條目寬度的百分比, 預設值80
isGrouped(): 資料對象是否已經分組
ScatterData 類(散佈圖資料)getGreatestShapeSize(): 返回所有ScatterDataSet中最大的圖形尺寸
PieData 類(餅圖資料)getDataSet():返回data對象的PieDataSet對象PieData 對象不能包含多個PieDataSets.
setDataSet(PieDataSet set): 設定 PieDataSet
BubbleData (泡泡圖資料)setHighlightCircleWidth(float width): 設定氣泡寬度,單位dp
CombinedData類(複合資料)
可以設定不同類型的資料,只用於CombinedChart
public class CombinedData extends ChartData { // ... public CombinedData(List<String> xVals) { ... } public CombinedData(String[] xVals) { ... } public void setData(LineData data) { ... } public void setData(BarData data) { ... } public void setData(ScatterData data) { ... } public void setData(CandleData data) { ... } // ...}
十九、DataSet類DataSet類是所有資料集的基類,例如LineDataSet,BarDataSet等
DataSet類代表一個屬於一個表項輸入類型的群體。
方法跟CharData類似,只不過他是個集合。DataSet類還有對應子類不做詳細翻譯。原文詳細資料
二十、DataSet子類
略
二十一、ViewPortHandler類
ViewPortHandler類負責處理圖表視圖。可以控製圖表視圖是否可見,視圖的目前狀態,平移和縮放/縮放層級,繪圖區域和位移。ViewPortHandler允許直接存取所有的上述性質和並直接修改。
不同於通過圖表類修改視圖,使用ViewPortHandler要小心,不正確使用會導致意外的行為。ViewPortHandler提供視圖修改的更進階的方法。
擷取執行個體
ViewPortHandler handler = chart.getViewPortHandler();
詳細使用見API文檔
對這個類研究的比較深入才可以直接使用,否則很容易出問題。
二十二、自訂填充位置FillFormatter介面允許自訂LineDataSet的填充線結束位置。只需要建立一個新的類,並實現FillFormatter介面。
使用方法
public class MyCustomFillFormatter implements FillFormatter { @Override public float getFillLinePosition(LineDataSet dataSet, LineDataProvider dataProvider) { float myDesiredFillPosition = ...; // put your logic here... return myDesiredFillPosition; }}然後設定到LineDataSet對象上
lineDataSet.setFillFormatter(new MyCustomFillFormatter());
預設實現為DefaultFillFormatter
二十三、混淆
需要在混淆檔案中添加
-keep class com.github.mikephil.charting.** { *; }如果不添加,會導致動畫出問題。
混淆的詳細說明 更多資訊
先簡單翻譯一下文檔,瞭解使用。源碼比較多,後期看源碼再從代碼層面分析。
歡迎掃描二維碼,關注公眾帳號
android開源圖表庫MPAndroidChart文檔翻譯(下)