MPAndroidChart 教程:FillFormatter

来源:互联网 发布:家政公司用什么软件 编辑:程序博客网 时间:2024/04/28 11:41

该FillFormatter 接口允许自定义的地方填充线的LineDataSet应该结束。 所有这一切需要做的就是创建一个新的类并实现FillFormatter接口。 使用

    public float getFillLinePosition(LineDataSet dataSet,         LineDataProvider provider)

执行该计算的填充线为个别的结束点的自定义逻辑接口的方法LineDataSet

创建一个类实现的接口:

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。

/** * Default formatter that calculates the position of the filled line. * * @author Philipp Jahoda */public class DefaultFillFormatter implements FillFormatter {    @Override    public float getFillLinePosition(ILineDataSet dataSet, LineDataProvider dataProvider) {        float fillMin = 0f;        float chartMaxY = dataProvider.getYChartMax();        float chartMinY = dataProvider.getYChartMin();        LineData data = dataProvider.getLineData();        if (dataSet.getYMax() > 0 && dataSet.getYMin() < 0) {            fillMin = 0f;        } else {            if (!dataProvider.getAxis(dataSet.getAxisDependency()).isStartAtZeroEnabled()) {                float max, min;                if (data.getYMax() > 0)                    max = 0f;                else                    max = chartMaxY;                if (data.getYMin() < 0)                    min = 0f;                else                    min = chartMinY;                fillMin = dataSet.getYMin() >= 0 ? min : max;            } else {                fillMin = 0f;            }        }        return fillMin;    }}
0 0
原创粉丝点击