1. 程式人生 > >百度地圖行車軌跡調整速度後小車鬼畜跑動的問題解決

百度地圖行車軌跡調整速度後小車鬼畜跑動的問題解決

問題情景描述:
在運用百度地圖的基礎上,獲取後臺傳輸過來的所有點。在地圖上繪製小車軌跡後,點選播放,小車可以正常按照軌跡行駛,但是如果調速之後,小車在行駛中就會間歇性出現抖動,來回跑的畫面。
知道鬼畜的問題,首先要知道實現原理,
實現原理:
每當程式碼迴圈遍歷經緯度點集合開始移動小車圖示的時候,會設定那個進度條(SeekBar)進度,但是 進度條還有一個監聽,就是手動改變進度條的時候,也需要改變小車的位置,鬼畜原因就在這裡。
比如我們將進度條設定為0~100,現在一共有500個點,現在跑到了第20個點,那個設定進度就是 (20/500 * 100)=4,這個設定進度的時候也觸發了進度條的監聽,然後他會以為是你手動設定到4,這個時候會執行畫
(4 / 100 * 500)點,也就是第20個點畫了兩次,當是第21個點的時候,畫(21/500 * 100)=4,然後觸發監聽,還是畫了(4 / 100 * 500)=20這個點,這個時候先畫了第21個點,又畫了第20個點,然後就發生了鬼畜。

解決辦法
進度條總長度設定和點集合長度一致,比如這個地方都設定為500,還有就是手動設定進度的時候,遮蔽進度條監聽效果,這樣就防止了繪製圖標兩次。