随着时间的推移绘制缓慢 - Android如何使用MPAndroidChart Line Graph绘制实时数据时释放内存?

时间:2016-04-06 14:08:49

标签: android mpandroidchart

我正在开发一个Android应用程序,它使用折线图绘制心率。我每65毫秒通过UDP广播接收一个数据包,我需要绘制。图形渲染在前2-3分钟非常平滑,之后变慢。任何人都可以帮我弄清楚是什么让它随着时间的推移变得缓慢?如何在绘制大数据时释放内存?

private void addEntryGraph01(int ch0[], LineChart chart) {
    LineData data = chart.getLineData();
    if (data != null) {
        ILineDataSet set = data.getDataSetByIndex(0);
        if (set == null) {
            set = createSet();
            data.addDataSet(set);
        }
        data.addXValue("");
        for (int i = 0; i < ch0.length; i++)
            data.addEntry(new Entry((float) (ch0[i]), set.getEntryCount()), 0);
        chart.notifyDataSetChanged();
        chart.setVisibleXRange(50, 50);
        chart.moveViewToX(data.getXValCount() - 10);
        return;
    }
}

   private LineDataSet createSet() {
    LineDataSet set = new LineDataSet(null, "");
    set.setDrawCubic(true);
    set.setDrawValues(false);
    set.setCubicIntensity(0.1f);
    set.setAxisDependency(YAxis.AxisDependency.LEFT);
    set.setColor(ColorTemplate.getHoloBlue());
    set.setCircleColor(ColorTemplate.getHoloBlue());
    set.setLineWidth(1f);
    set.setDrawCircles(false);
    set.setFillAlpha(65);
    set.setFillColor(ColorTemplate.getHoloBlue());
    set.setHighLightColor(Color.rgb(244, 117, 177));
    set.setValueTextColor(Color.WHITE);
    set.setValueTextSize(10f);
    return set;

}

1 个答案:

答案 0 :(得分:0)

我们在这里进行了一些测试以比较various Android Charting Libraries的性能,而MPAndroidChart排在第二位,但SciChart for Android是第一次大幅度提升。

这是一个新的(商业)图表组件,专为Android应用程序和嵌入式系统中的实时使用而量身定制。距离发布还有几天,所以目前还没有,但很快就会推出!

enter image description here

披露:请注意我在SciChart Android项目上工作。