Как построить линейный график в реальном времени

Я создаю приложение для измерения звука в Android. Я хочу отображать значения в линейном графике в режиме реального времени. Кто-нибудь, скажите мне, как я могу это сделать?


person user3409263    schedule 24.04.2014    source источник


Ответы (3)


Для операций со временем см. android.text.format.Time http://developer.android.com/reference/android/text/format/Time.html

Это официальный пример кода оттуда:

Time time = new Time();
time.set(4, 10, 2007);  // set the date to Nov 4, 2007, 12am
time.normalize(false);       // this sets isDst = 1
time.monthDay += 1;     // changes the date to Nov 5, 2007, 12am
millis = time.toMillis(false);   // millis is Nov 4, 2007, 11pm
millis = time.toMillis(true);    // millis is Nov 5, 2007, 12am

Сейчас для отображения графика нет готового класса, поэтому придется рисовать самому, переопределяя функцию Draw() класса View, либо искать для этого библиотеку, например: http://android-graphview.org/

person Paul E    schedule 24.04.2014

При использовании AChartEngine вам просто нужно добавить новые значения в серию и вызвать mChartView.repaint(), чтобы диаграмма обновлялась с новыми обновлениями.

person Dan D.    schedule 29.04.2014

в onCreate(...):

GraphView graphView = new LineGraphView(this, "Amplitude");
graphView.setScrollable(true);
graphView.setViewPort(0, 30); // the x range you want to show without scrolling
GraphViewSeries graphSeries = new GraphViewSeries(new GraphViewDataInterface[0]);
graphView.addSeries(graphSeries);
setContentView(graphView);
//or add your graphView to the Activity's view as appropriate

затем, когда вы получите новые значения:

graphSeries.appendData(new GraphView.GraphViewData(xValue, yValue), true, 300); 
//where 300 is the maximum number of values to keep

Новые значения появятся справа, и GraphView будет автоматически прокручиваться, чтобы отобразить самые последние данные на диаграмме.

person Jeb    schedule 23.05.2014