gpt4 book ai didi

java - 如何在mpandroidchart中实时显示图表?

转载 作者:行者123 更新时间:2023-12-02 11:11:32 26 4
gpt4 key购买 nike

我正在使用MPAndroidChart我需要实时显示折线图。但问题是,它是在整个完成后才显示的。实际上它应该像实时一样绘制。我尝试的是,

private void updateUI(final ArrayList<TimeModel> pJsonObject) {

for(int i=0;i<pJsonObject.size();i++){
int speedRates = pJsonObject.get(i).getSpeedRate();
String time = String.valueOf(pJsonObject.get(i).getTotalTime());
xAxes.add(time);
//yAxes.add(new Entry(10, 0));
yAxes.add(new Entry(speedRates,i));
}
String[] xaxes = new String[xAxes.size()];
for (int i = 0; i < xAxes.size(); i++) {
xaxes[i] = xAxes.get(i).toString();
}

LineDataSet lineDataSet = new LineDataSet(yAxes, "Time");

lineDataSet.setDrawCircles(true);
lineDataSet.setColor(Color.GREEN);

lineDataSets.add(lineDataSet);

linechart.setData(new LineData(xaxes, lineDataSets));
linechart.setVisibleXRangeMaximum(65f);
// linechart.setTouchEnabled(true);
// linechart.setDragEnabled(true);

linechart.getXAxis().setPosition(XAxis.XAxisPosition.BOTTOM);

linechart.getAxisLeft().setDrawGridLines(false);
linechart.getXAxis().setDrawGridLines(false);


YAxis yAxisRight = linechart.getAxisRight();
yAxisRight.setEnabled(false);

linechart.animateXY(3000, 3000);
}

但这是已完成的绘图。我需要在 mpandroid 图表中实时绘制。

最佳答案

这是代码。它启动线程,然后在循环中向图表添加条目(在本例中为 500 个点),每次添加后,线程 hibernate 1000 毫秒(1 秒),这是您的间隔:

    new Thread(new Runnable() {

@Override
public void run() {
for(int i = 0; i < 500; i++) {
runOnUiThread(new Runnable() {
@Override
public void run() {
addEntry();
}
});

try {
Thread.sleep(1000);
} catch (InterruptedException e) {
}
}
}
}).start();

对于每个点间隔 1 秒的动画,请使用此

mChart.animateX(1000 * pointCount);

例如,就您而言:

mChart.animateX(1000 * xAxes.size());

关于java - 如何在mpandroidchart中实时显示图表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50582455/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com