Мне нужна помощь с этой простой анимацией на моем телефоне Android.Я новичок с анимацией и графикой.
Я отображаю данные акселерометра в виде скользящего окна временных рядов.Когда считываются новые данные акселерометра, его данные отображаются справа, сдвигая предыдущие данные влево, как показано ниже:
Моя программа работает довольно плавно, но яхотел бы помочь с оптимизацией анимации.Вот мои основные проблемы:
Моя текущая реализация считывает все данные акселерометра в одном потоке и сохраняет данные в очереди FIFO фиксированного размера для захвата ширины окна временного ряда.Затем я использую Timer.scheduleAtFixedRate (), чтобы отобразить все содержимое очереди так, чтобы весь график перерисовывался каждые 50 миллисекунд.Могу ли я улучшить это?Мне действительно нужно перерисовывать график так часто, как это?В другой подобной программе, которую я видел, каждый пиксельный столбец копируется в один пиксель влево, перелистывая график;столбец новейших данных рисуется в крайнем правом столбце пикселей.Это лучше?
Я перерисовываю легенду (вверху слева) в потоке рисования, который выполняет функцию рисования каждые 50 миллисекунд.Есть ли способ «сохранить» эту легенду вместо того, чтобы постоянно перерисовывать ее?
Буду признателен за любую другую помощь.Я слышал об оптимизации, такой как двойная буферизация, но не знаю, поможет ли это мне.