android开源图表库MPAndroidChart文档翻译(下)

来源:互联网 发布:淘宝达人怎么修改资料 编辑:程序博客网 时间:2024/05/21 10:12

在 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.** { *; }
如果不添加,会导致动画出问题。

混淆的详细说明 更多信息


先简单翻译一下文档,了解使用。源码比较多,后期看源码再从代码层面分析。



欢迎扫描二维码,关注公众账号


0 0