Я разрабатываю приложение для Android, где хочу выделить определенные точки/адреса на карте google. Мне удалось добавить точку в mapView с помощью OverlayItem и Drawable. Это отлично работает.
Но я установил приложение, в котором контакты/точки добавляются асинхронно, и похоже, что они отбрасываются с верхней части экрана на карту. Выглядит очень приятно.
Я думаю, что мне удастся закодировать асинхронные функции с помощью потоков, но я понятия не имею, как реализовать функцию "падения"... У кого-нибудь есть подсказка?
Это казалось бы сложным, если бы карта не была неподвижной.
Если карта не будет панорамироваться/масштабироваться, вы можете выполнить "падение" с помощью TranslateAnimation
, применяемого к ImageView
, который плавает над картой (например, более поздний дочерний элемент в RelativeLayout
, который содержит MapView
). Когда анимация завершится, вы сделаете ImageView
be View.GONE
, и вы добавите фактический маркер в ItemizedOverlay
.
Вот пример проекта, показывающий, как сделать перетаскивание OverlayItem
с помощью аналогичной базовой концепции.