Карты Google для Android - пользовательское наложение плиток - PullRequest
0 голосов
/ 08 ноября 2010

Работал над пользовательской реализацией наложения плиток для приложения для Android.У меня проблемы с загрузкой изображений в фоновом режиме.

Быстрый обзор: у меня есть класс (MapOverlay), который расширяет Overlay.Метод draw в основном вычисляет необходимые изображения (растровые изображения) и положение x, y, чтобы нарисовать их на экране.Затем у меня есть AsyncTask, который циклически просматривает каждую плитку и загружает изображения, если их нет на карте памяти (локальное кэширование), затем, когда AsyncTask завершил работу, я затем перебираю изображения и рисую их на переданном объекте canvasв метод рисования MapOverlay.Но растровые изображения никогда не прорисовываются.

Я выполнил некоторую элементарную отладку, зарегистрировав ширину и высоту элемента canvas во время завершения AsyncTask, но для них он возвращает 0, поэтому я предполагаю, чтообъект canvas больше не доступен для кода, запущенного в OnPostExecute () AsyncTask после завершения метода рисования

Без многопоточности у меня это работало довольно хорошо, за исключением «зависания» во время панорамирования при загрузке изображенияблокирует поток пользовательского интерфейса.Теперь я совершенно отстой, пытаясь заставить работать потоки

1 Ответ

0 голосов
/ 18 января 2011

Вы пытались вызвать postInvalidate () после завершения загрузки AsyncTask? Таким образом, вызов в MapView.draw () получит и нарисует загруженный оверлей (то есть, если ваша система кэширования работает).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...