Android Google maps APIv2 InfoWindow и маркеры


Я использую Google Maps APIv2 для Android. Я реализовал MapFragment, расставил маркеры там, где мне нужно, добавил кастомное InfoWindow для маркеров.

Проблема в том, что у меня есть AsyncImages в моем InfoWindow и там есть ProgressBar. Дело в том, что ProgressBar не крутится, а изображение не устанавливается после того, как я получил его из кеша. AsyncImages работает хорошо. Я протестировал его в другом классе.
Я заменил свое представление AsyncImages только одним ProgressBar - то же самое. Он не крутится.

Есть предложения?

УПД.

Спиннер не крутится из-за

Примечание. Отображаемое информационное окно не является просмотром в реальном времени. Представление визуализируется как изображение (с использованием View.draw(Canvas)) во время его возврата. Это означает, что любые последующие изменения вида не будут отражаться в информационном окне на карте. Чтобы обновить информационное окно позже (например, после загрузки изображения), вызовите showInfoWindow(). Кроме того, информационное окно не будет учитывать какую-либо интерактивность, типичную для обычного просмотра, такую ​​как события касания или жестов. Однако вы можете прослушивать общее событие щелчка во всем информационном окне, как описано в разделе ниже.

Итак, вопрос в том, как наилучшим образом реализовать AsyncImages из сети/кеша на Картах?
Создать массив Views где-то отдельно от метода getContentInfo(), а также создать что-то вроде прослушивателя OnImageDownloaded?


person Konstantin Kiriushyn    schedule 15.01.2013    source источник
comment
Вы когда-нибудь решали эту проблему? У меня похожая проблема.   -  person LilMoke    schedule 19.02.2013
comment
Еще нет. Я оставил это. К счастью, сейчас мне не нужны AsyncImages на маркерах карты. Но я до сих пор не знаю, как это реализовать.   -  person Konstantin Kiriushyn    schedule 21.02.2013
comment
У меня аналогичная проблема, я загружаю изображения и показываю их в окне маркера. я не мог найти решение   -  person Barış Akkurt    schedule 28.04.2014


Ответы (2)


Как указано в документации Google Maps Android API v2:

Примечание. Отображаемое информационное окно не является просмотром в реальном времени. Представление визуализируется как изображение (с использованием View.draw(Canvas)) в момент его возврата. Это означает, что любые последующие изменения вида не будут отражаться в информационном окне на карте. Чтобы обновить информационное окно позже (например, после загрузки изображения), вызовите showInfoWindow(). Кроме того, информационное окно не будет учитывать какую-либо интерактивность, типичную для обычного просмотра, такую ​​как события касания или жестов. Однако вы можете прослушивать общее событие щелчка во всем информационном окне, как описано в разделе ниже.

Возможно, вам следует снова попытаться вызвать showInfoWindow() где-нибудь в вашем коде.

person Spartako    schedule 15.01.2013
comment
Спасибо, я полностью пропустил эту небольшую заметку. Но проблема все еще здесь. Я предполагаю, что мне следует создать представления для отображения в InfoWindow не в методе getContentInfo(), а где-то еще, и создать еще один прослушиватель, чтобы уведомить меня о том, что изображение загружено и установлено для просмотра. Выглядит довольно раздражающе - person Konstantin Kiriushyn; 15.01.2013
comment
действительно довольно раздражает ... но кажется правдоподобным, пожалуйста, опубликуйте его, если вам удастся заставить его работать! Я работаю над чем-то подобным, и это может быть полезно - person Spartako; 15.01.2013

У меня была такая же проблема здесь.

Я думаю, что вызов showInfoWindows() для вращающегося (неопределенного) индикатора выполнения не имеет для меня смысла, и я также не уверен, что это работает. (конечно, showinfoWindows может иметь смысл для горизонтального индикатора выполнения). Поэтому я выбрал одно из следующих трех решений:

1) оставил индикатор выполнения рядом с текстом «Загрузка ...» неанимированным, по крайней мере, он дает представление пользователю. 2) поместите вращающееся колесо загрузки в другое место в пользовательском интерфейсе. 3) Использование фрагмента диалога, чтобы показать процедуру загрузки, но это действительно зависит от ощущения, которое вы хотите достичь с помощью своего приложения.

Лично я выбрал первое.

Я очень надеюсь, что Google исправит это в будущем.

person MadBlack    schedule 04.03.2013