Poner GIF animado en superposición sobre MapView

He estado tirando de mi pelo tratando de conseguir esta tarea aparentemente simple para trabajar. Necesito poner un gif animado en una superposición en un mapa.

Tengo el siguiente código:

AnimationDrawable anim = (AnimationDrawable)getResources().getDrawable(R.drawable.explosion); 

Sin embargo, ¿cómo puedo ahora pop que en una superposición y tirar sobre la vista del mapa?

Actualmente, para poner imágenes estáticas tengo esto:

class DrawableIcon extends ItemizedOverlay { private ArrayList mOverlays = new ArrayList(); public DrawableIcon(Drawable defaultMarker) { super(boundCenterBottom(defaultMarker)); } public void addOverlay(OverlayItem overlay) { mOverlays.add(overlay); populate(); } @Override protected OverlayItem createItem(int i) { return mOverlays.get(i); } @Override public int size() { return mOverlays.size(); } }
class DrawableIcon extends ItemizedOverlay { private ArrayList mOverlays = new ArrayList(); public DrawableIcon(Drawable defaultMarker) { super(boundCenterBottom(defaultMarker)); } public void addOverlay(OverlayItem overlay) { mOverlays.add(overlay); populate(); } @Override protected OverlayItem createItem(int i) { return mOverlays.get(i); } @Override public int size() { return mOverlays.size(); } } 

Que luego utilizo como tal: (gp es el geopunto del lugar en el que quiero poner la imagen)

DrawableIcon image = new DrawableIcon(this.getResources().getDrawable(ResourceID)); image.addOverlay(new OverlayItem(gp, "", "")); mapOverlays.add(image);
DrawableIcon image = new DrawableIcon(this.getResources().getDrawable(ResourceID)); image.addOverlay(new OverlayItem(gp, "", "")); mapOverlays.add(image); 

Entonces, ¿cómo voy a ir sobre la modificación de este código para que cuando ResourceID es el ID de una imagen animada gif, la imagen gif se reproduce su animación sobre la vista del mapa?

¡Gracias por adelantado!

One Solution collect form web for “Poner GIF animado en superposición sobre MapView”

Para mostrar una animación sobre mapa, puede utilizar el método addView de la clase MapView. Pero los parámetros de diseño de la vista deben inicializarse con MapView.LayoutParams.

En este caso, la vista se moverá automáticamente cuando desplace el mapa.

Es tan simple como:

  1. Sólo cree una vista (como ImageView o cualquier otra vista);
  2. Inicializar el diseño de vista, crear y pasar MapView.LayoutParams al método setLayoutParams;
  3. Agregue la vista a MapView.

     public static void addAnimationToMap(MapView map, int animationResourceId, GeoPoint geoPoint) { final ImageView view = new ImageView(map.getContext()); view.setImageResource(animationResourceId); //Post to start animation because it doesn't start if start() method is called in activity OnCreate method. view.post(new Runnable() { @Override public void run() { AnimationDrawable animationDrawable = (AnimationDrawable) view.getDrawable(); animationDrawable.start(); } }); map.addView(view); MapView.LayoutParams layoutParams = new MapView.LayoutParams( MapView.LayoutParams.WRAP_CONTENT, MapView.LayoutParams.WRAP_CONTENT, geoPoint, MapView.LayoutParams.BOTTOM_CENTER); view.setLayoutParams(layoutParams); } 
  • No haga clic en el marcador después de hacer clic en android map v2
  • Cómo obtener la latitud y la longitud en el mapa en Android?
  • Android: ¿Icono predeterminado para la ubicación actual del usuario?
  • Cómo animar marcador en el mapa android api V2?
  • Error al inicializar GoogleService
  • No se puede establecer el fondo de PopupWindow a transparente
  • Android MapView no se carga a menos que toque en la vista del mapa
  • Cómo eliminar un solo marcador con Google Maps V2?
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.