2010-11-08 43 views
0

一直在爲Android應用程序的自定義拼貼覆蓋實施工作。 我在後臺對線下圖像進行線程編程時遇到了問題。Android谷歌地圖 - 自定義拼貼覆蓋

快速瀏覽: 我有一個擴展覆蓋的類(MapOverlay)。繪製方法基本上是計算所需的圖像(位圖)以及將它們繪製在屏幕上的x,y位置。然後,我有一個AsyncTask循環訪問每個圖塊,並在圖像不存在的情況下下載圖像(本地緩存),然後一旦AsyncTask完成,然後遍歷圖像並將其繪製到傳遞的畫布對象進入MapOverlay的繪製方法。但是,位圖永遠不會被繪製。

我已經做了一些基本的調試,通過在AsyncTask完成時記錄canvas元素的寬度和高度,但它爲它們返回0,所以我猜測canvas對象不再可用於代碼在繪製方法完成後在AsyncTask的onPostExecute()中運行

沒有線程我有這個工作很好,除了「凍結」,而圖像下載時阻止UI線程平移。現在我完全吸了嘗試讓線程工作

+0

你可以請你分享一些示例代碼,你已經做了什麼以及如何完成加載的瓷磚。你是否也檢查zoomIn和Zoo out Raj是否發生同樣的事情 – Nik 2011-11-20 17:36:03

回答

0

你試過在AsyncTask完成下載時調用postInvalidate()嗎?這樣MapView.draw()中的調用將獲取並繪製下載的覆蓋圖(即,如果您的緩存系統正常工作)。