这些天公司要做统计报表,用到折线图。我在网上找了一下,发现MpAndroidChart这个开源框架非常不错,所以便直接拿过来用了。
不多说废话,直接说要点:
遇到的问题:我们需要把折线图中的最高点画上小圆点,但框架本身并没有这个功能
解决:
1、创建了一个方法获取到集合数据中的最大值
/**
* 取最大值
*
* @param lists
* @return
*/
private float[] getMaxFloat(List<Entry> lists) {
float[] maxEntry = new float[2];
for (int i = 0; i < lists.size() - 1; i++) {
if (i == 0) {
maxEntry[0] = lists.get(i).getXIndex();
maxEntry[1] = lists.get(i).getVal();
}
if (maxEntry[1] < lists.get(i + 1).getVal()) {
maxEntry[0] = lists.get(i + 1).getXIndex();
maxEntry[1] = lists.get(i + 1).getVal();
}
}
return maxEntry;
}
2、在源码LineChartRenderer类中的drawCircles方法中调用刚创建的方法
3、在源码CircleBuffer类中重写了feed方法
// 自己重写的方法
public void feed(List<Entry> entries, float[] maxDot) {
addCircle(maxDot[0], maxDot[1] * phaseY);
reset();
}
4、将获取到的最大值传递给feed方法。
5、圆点出来了。