AndroidPlot, установка разных форматов DomainValueFormat

Я пытаюсь сделать следующее для меток x на моем графике.

Первая метка должна иметь формат:

plot.getGraphWidget()
        .setDomainValueFormat(new SimpleDateFormat("dd/MM/yyyy hh:mm:ss"));

Все остальные метки должны отображать только минуты и секунды:

plot.getGraphWidget()
        .setDomainValueFormat(new SimpleDateFormat("mm:ss"));

Я могу установить формат для всех меток, но не могу понять, как изменить его только для первой метки. Мой график динамичен и меняется каждую секунду (входящие данные обновляются каждую секунду с новым значением).

Может быть, есть функция, которая могла бы мне помочь? (Это все немного сложно найти, когда веб-сайт не работает...) Или какие-нибудь другие советы?

Любая помощь приветствуется.


person taranaki    schedule 14.05.2012    source источник
comment
Обновление: я пытался сделать это в течение очень долгого времени и сдался. Теперь я просто показываю формат чч: мм: сс и предполагаю, что пользователь поймет, что это текущие данные.   -  person taranaki    schedule 23.05.2012


Ответы (1)


Предполагая, что в вашей модели предметной области нет повторяющихся значений, вы можете отслеживать свое первое значение и проверять его на равенство внутри пользовательской реализации Formatter. Это не очень красиво, но поскольку нет способа передать индекс элемента, который рисуется в Formatter, это единственный способ, которым я могу это сделать.

person Nick    schedule 29.04.2013
comment
Другое возможное решение: если значения вашего домена равномерно распределены (или вы, по крайней мере, не возражаете, что они отображаются на графике), вы можете использовать пользовательский форматтер и массив индексов в качестве значений вашего домена {0, 1, 2, 3, ...} и таблицу поиска с соответствующими метками внутри {01.02.2012 12:00, 01.03.2012 12:00}. Внутри вашего средства форматирования, когда вы получаете вызов для рендеринга 0, вместо этого возвращайте значение из таблицы поиска по индексу 0. - person Nick; 02.05.2013