2012-02-04 4 views
1

Я разрабатываю приложение для Android (уровень API 11), который считывает некоторые данные с устройства, один кусок в секунду. Я хочу построить данные, ось х - время в секундах, а ось y - значения. Одним из требований к программе является то, что я должен показывать результаты одного часа наблюдений на одном экране без прокрутки, поэтому я должен соответствовать 3600 пунктам на экране. Не имеет значения, что точки перекрываются.Рисовать быстро в Android

Я не знаю, как построить данные достаточно быстро.

Я использую androidplot, и все происходит очень медленно примерно через 30 минут, так как androidplot перерисовывает одни и те же точки снова и снова.

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

Можно ли каким-то образом кэшировать ранее нарисованное изображение и добавлять к нему только новые точки?

Есть ли что-то вроде функции WinAPI BitBlt() в Android?

+0

Невозможно это сделать, поскольку на экране телефона недостаточно пикселей, чтобы отображать 3600 точек данных, у вас будут перекрывающиеся точки данных. – JPM

ответ

0

Я сделал некоторую оптимизацию для AndroidPlot, и я отправлю им свой код в эти дни. Но я могу начать рассказывать вам, поэтому, если вы хотите, вы можете работать над этим. В основном самая медленная часть при рисовании огромных наборов данных - это итерация через XYSerie. Исходный код выполняет итерацию с инструкцией for. Я представил итераторы для значений x и y. Это для меня означало, что вы в 3 - 4 раза быстрее с набором данных 2k точек. Надеюсь, он тоже может вам помочь

Смежные вопросы