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 configurar el control de zoom con setBuiltInZoomControls (true)?
  • Android MapView getMap () devuelve null
  • Error al inicializar GoogleService
  • Deshabilitar pan / zoom en com.google.android.maps.MapView
  • Reubicar el logotipo de Google en MapView
  • Falta la biblioteca compartida en android.
  • ¿Cómo dibujar texto con un borde en un MapView en Android?
  • Dibujo de una línea / ruta en Google Maps
  • 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.