Join FlipAndroid.COM Telegram Group: https://t.me/joinchat/F_aqThGkhwcLzmI49vKAiw


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!

  • Cómo agregar la dependencia del proyecto google-play-services.jar para que mi proyecto se ejecute y presente el mapa
  • Cambiar controles de zoom en un MapView
  • Marcador predeterminado para android google MAPVIEW?
  • Reubicar el logotipo de Google en MapView
  • Uso de una imagen como GoogleMap
  • Dibujo multicolor de PolyLines en Maps V2
  • Cómo cambiar el marcador de la superposición en el toque para Android?
  • Esta aplicación no se ejecutará a menos que actualice Google Play Services (a través de Bazaar)
  • 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); } 
    FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.