¿Puedo usar AnimationDrawable en una superposición en un MapView?

He creado un AnimationDrawable en XML, y funciona bien. Pero al mover el dibujable en un MapView como un marcador de superposición (reemplazando un dibujo estático que funciona bien), la animación se niega obstinadamente a jugar. He movido la llamada a start () a un botón, para la prueba, e incluso cuando se pulsa varios segundos después de que el MapView ha mostrado, la animación no se inicia. No estoy viendo nada en Logcat. Sé que start () necesita llamar después de que todas las ventanas estén configuradas, pero esto parece ser un problema aparte.

¿Son compatibles AnimationDrawables con MapView?

¿Hay algo especial que necesito hacer para que uno funcione en un MapView?

¿Alguna vez ha tenido éxito en un trabajo MapView?

Solución

Uso de la solución de Matt (abajo) He añadido el AnimationDrawable poniendo el ImageView dentro de las capas de MapView, en lugar de usar una superposición.

public void showAnimatedMarker(GeoPoint point) { LinearLayout v = (LinearLayout) View.inflate(context, R.layout.markerlayout, null); ImageView marker = (ImageView) v.findViewById(R.id.marker); AnimationDrawable markerImage = (AnimationDrawable)marker.getDrawable(); this.addView(v, 0, new MapView.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT, point, MapView.LayoutParams.BOTTOM_CENTER)); markerImage.start(); } 

Y luego markerlayout.xml:

 <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="wrap_content" android:layout_height="wrap_content" > <ImageView android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/marker" android:src="@drawable/my_animation_drawable" /> </LinearLayout> 

Esto no se ha probado con animaciones, pero puede ser de alguna utilidad.

Tuve problemas con la adición de widgets al MapView, pero encontré el método addView. Trate de añadir el AnimationDrawable a través de este método, puede cambiar la forma en que es tratado por el MapView y, por tanto, animar correctamente:

Echa un vistazo aquí para un pequeño ejemplo: http://www.gauntface.co.uk/pages/blog/2010/01/04/mapview-with-widgets-android/

  • Cómo recuperar la ubicación del dispositivo actual y mostrarlo en el fragmento de mapa en un fragmento
  • Error al inicializar GoogleService
  • Androide MapView en el fragmento
  • ¿Cómo mostrar el popup en la superposición de tapping en android?
  • Android cómo dibujar la pintura en mano libre en MapView con superposición?
  • Android Geocoder getFromLocationName devuelve siempre null
  • Cómo obtener la latitud y la longitud en el mapa en Android?
  • MapActivity no se puede resolver con un tipo
  • Android GeoPoint con valores lat / long
  • Google Maps Android MapView v2: deshabilita el zoom
  • Error al inicializar GoogleService
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.