保留旧值,更新新值并在mpandroidchart中显示动画

时间:2019-06-20 18:30:56

标签: android mpandroidchart linechart android-graphview

我有一个mpandroidchart,其中我从某个来源提供新值,目前作为演示,我从随机数生成器提供数据并使用runnable运行它。一切正常。在我设置的持续时间之后,绘制新值。 但我希望它保留旧值并绘制新值并像从右到左那样进行动画处理。 (例如-心电图机数据)。

final Handler handler = new Handler();
        final Random random = new Random();
        final Integer delay = 2000;
        handler.postDelayed(new Runnable() {
            @Override
            public void run() {
                //Do something after 20 seconds
                ChartValue =  10+random.nextInt(90);
                // calling the graph generator function
                generateGraph(ChartValue);
                handler.postDelayed(this, delay);
            }
        }, delay);

mpAndroidChart

 public void generateGraph(Integer val) {
    final Integer delay = 2000;
    ArrayList<Entry> yValues = new ArrayList<>();
    yValues.add(new Entry(0, val));
    LineDataSet set = new LineDataSet(yValues, "Data");
    set.setFillAlpha(110);
    set.setColor(R.color.red);
    set.setLineWidth(3f);
    set.setValueTextSize(10f);
    ArrayList<ILineDataSet> dataSets = new ArrayList<>();
    dataSets.add(set);
    LineData data = new LineData(dataSets);
    mChart.setData(data);
    mChart.notifyDataSetChanged();
    mChart.invalidate();

}

1 个答案:

答案 0 :(得分:1)

在以下行之前:

 mChart.notifyDataSetChanged();

您需要添加以下代码行:

mChart.animateX(1000);

其中1000是时间(以毫秒为单位)。