График Android в реальном времени на x-aixs с использованием Graphview - PullRequest
0 голосов
/ 07 июня 2019

В настоящее время я получаю некоторые данные через датчик Bluetooth и хотел бы построить график в реальном времени, где ось Y - это данные, а ось X - время

. Я пытался следовать примеру наhttps://www.youtube.com/watch?v=knlbFXRHff8.Но все данные на графике обновляются каждую секунду.Я хотел бы добавить текущие данные и время к последней части линейного графика и сохранить предыдущие данные на графике.Следующее в моей текущей работе:

Настройка фона:

 SimpleDateFormat mdformat = new SimpleDateFormat("mm:ss");
 GraphView graph = (GraphView) findViewById(R.id.graph);
 series = new LineGraphSeries<DataPoint>();
    graph.addSeries(series);
    Viewport viewport = graph.getViewport();
    viewport.setXAxisBoundsManual(true);
    viewport.setYAxisBoundsManual(true);
    viewport.setMinY(0);
    viewport.setMaxY(40);
    viewport.setScrollable(true); 
 graph.getGridLabelRenderer().setLabelFormatter(new DefaultLabelFormatter(){
       @Override
       public String formatLabel (double value, boolean isValueX){
           if(isValueX){
               return mdformat.format(new Date((long)value));
           }else {
           return super.formatLabel(value, isValueX);
           }
       }
   });
   graph.getGridLabelRenderer().setHumanRounding(false);
   graph.getGridLabelRenderer().setNumHorizontalLabels(5);

Добавление данных: эта часть находится внутри того места, где телефон Android получает данные Bluetooth

private void addEntry() {
    series.appendData(new DataPoint(new Date().getTime(), d), true, 100);
}
...