MPAndroid форматирование даты и анализ теряет точность - PullRequest
0 голосов
/ 13 февраля 2019

Я использую библиотеку MPAndroid для графика моего приложения для Android.У меня есть длинное значение, введенное в запись.Моя проблема в том, что когда я форматирую значения оси x, он использует значение с плавающей запятой вместо long, поэтому теряет точность.

Вот мой код для записи в график:

String dateString = "02/13/2019(11:23:45)";
long readingDate = 0;
try {
    SimpleDateFormat sdf = new SimpleDateFormat("MM/dd/yyyy(kk:mm:ss)", Locale.US);
    Date date = sdf.parse(dateString);
    readingDate = date.getTime();
    } catch (ParseException e) {
         e.printStackTrace();
    }
SensorData.add(new Entry(readingDate, 1.5);

Вот мой код для форматирования оси x:

private class XAxisValueFormatter implements IAxisValueFormatter {

    @Override
    public String getFormattedValue(float value, AxisBase axis) {
        String dateString = new SimpleDateFormat("MM/dd/yyyy(kk:mm:ss)", Locale.US).format(value);
        return dateString;
    }
}

Как я могу решить эту проблему?

1 Ответ

0 голосов
/ 13 февраля 2019

Одним из возможных решений было бы сделать так, чтобы ваша первая точка содержала значение 0.

В основном вам нужно вычитать start_timestamp из каждого нового значения x Entry, чтобы диаграмма начиналась с 0, а не с отметки времени..

Например, .

Предположим, переменная start_timestamp содержит вашу первую временную отметку точек данных.

Чтобы добавить новую запись, используйте:

SensorData.add(new Entry(readingDate - start_timestamp, 1.5);

Чтобы отформатировать значение x, просто добавьте start_timestamp к предоставленному значению x.

...