entre Desarrolladores

Recibe ayuda de expertos

Registrate y pregunta

Es gratis y fácil

Recibe respuestas

Respuestas, votos y comentarios

Vota y selecciona respuestas

Recibe puntos, vota y da la solución

Pregunta

2votos

Android: Globo flotante de marker personalizado con botones

Hola.

Deseo que los markers de mi mapa de Google Maps contengan un botón en el globo flotante. La idea es la siguiente:

enter image description here

Por lo que leo en la documentación oficial https://developers.google.com/maps/documentation/android/infowindows y el el siguiente foro http://stackoverflow.com/questions/14123243/google-maps-api-v2-custom-infowindow-like-in-original-android-google-maps esto no es posible. La documentación oficial dice:

As mentioned in the previous section on info windows, an info window
is not a live View, rather the view is rendered as an image onto the
map. As a result, any listeners you set on the view are disregarded
and you cannot distinguish between click events on various parts of
the view. You are advised not to place interactive components — such
as buttons, checkboxes, or text inputs — within your custom info
window.

Me imagino que tiene que haber alguna alternativa para "engañar" al usuario y dar el mismo efecto, pero no se me ocurre cual puede ser.

Alguna idea?

Gracias.

Edito: No me di cuenta y en el enlace de StackOverflow expone una posible solución. Voy a intentar desarrollar eso, pero mantengo el hilo abierto y si alguien tiene otra idea sería estupendo.

1 Respuesta

1voto

Andhii1293 Puntos2930

Y lograste hacer que funcionara?, Casualmente estaba tratando de hacer lo mismo pero no no lo logre así que opte por usar el evento clic del globo de informacion del Marker:

mapa.setOnInfoWindowClickListener(new GoogleMap.OnInfoWindowClickListener() {
            @Override
            public void onInfoWindowClick(Marker marker) {                                  
                    Toast.makeText(Inicio.this, "clic en marcador : " + marker.getTitle() + "...", Toast.LENGTH_SHORT).show();
            }
        });

Y funciono pero no esta de mas probar mejores opciones...

0voto

egoitz_gonzalez comentado

Al final no logré hacer lo que pedía en la pregunta. Lo que hice fue lo siguiente:

Al clicar encima del market, cambio el estilo de la ActionBar y añado un botón en ella.

    @Override
    public boolean onMarkerClick(Marker marker) {
        // TODO Auto-generated method stub

        //ActionBar Contextual
        mActionMode = getActivity().startActionMode(new ActionBarCallBack(marker));
        mActionMode.setTitle(marker.getTitle());

        return false;
    }

    class ActionBarCallBack implements ActionMode.Callback {
        public Marker marker;

        //Constructor
        public ActionBarCallBack(Marker marker){
            this.marker = marker;

        }
 @Override
        public boolean onCreateActionMode(ActionMode mode, Menu menu) {
            // TODO Auto-generated method stub
            mode.getMenuInflater().inflate(R.menu.map_activity_menu_on_marker_select, menu);
            return true;
        }

        @Override
        public void onDestroyActionMode(ActionMode mode) {
            // TODO Auto-generated method stub

        }

        @Override
        public boolean onPrepareActionMode(ActionMode mode, Menu menu) {
            // TODO Auto-generated method stub

            return false;

1voto

cobasESP comentado

El método que propone @Andhii1293 es correcto, yo ya lo vi en la documentación oficial y lo use.

Por favor, accede o regístrate para responder a esta pregunta.

Otras Preguntas y Respuestas


...

Bienvenido a entre Desarrolladores, donde puedes realizar preguntas y recibir respuestas de otros miembros de la comunidad.

Conecta