2009/12/23

在MapView上面移動ItemOverlay


我在StackOverflow 找到一篇寫的滿詳細的片段程式,我大喜以為就此完成這樣功能,把dispatchTouchEvent放在MapView去跑,一開始也都滿正常的,直到昨天怪事發生…

啟動程式之後只要按下ZoomLevel的縮放按鈕(縮小或放大),那按鈕就會一路咬住直到無法再放大或縮小為止!!起初我以為是我寫ZoomControl的寫法有問題,但查了又查發現目前這個版本的SDK也只有一種寫法,應該不至於有問題除非是它自己的BUG,就算它有BUG也不用等我才會發現呀…

於是呢…我就把dispatchTouchEvent MotionEvent.ACTION_UP 的事件原本呼叫地圖置中的功能註解掉,改用Log.i來觀察ZoomLevel是不是也會觸動這個Log。

結果…不出所料!點擊地圖會觸發這個ACTION_UP事件,點選Zoom Control也會觸發這個ACTION_UP事件,由此可見,MapView裡面的Zoom Control會吃到這個事件…

所以解決之道是…把這個ACTION_UP搬到Overlay裡面去,放在onTouchEvent裡,一樣就是去呼叫地圖置中的功能即可!

Done!謝謝觀賞!

解決來源

沒有留言: