2011-11-08 15 views
7

estoy usando este ejemplo: https://github.com/galex/android-mapviewballoonsÁrea Google Map marcador con enlace

Mi problema es que el área seleccionable es más ancha que la propia marca. Por ejemplo, mi marcador de Google Map es 25x25, entonces el área seleccionable se extendería hasta 70x70. Este es un gran problema para la superposición de marcadores. enter image description here

Cuando hice clic en la punta de esa flecha, se activó Tocar, aunque el área de toque esté lejos del marcador.

Por favor, ayúdame. Gracias.

+2

¿Alguna vez resolvió este problema? –

Respuesta

-1

Para la depuración:

Trate de usar un TouchDelegate para la vista, puede especificar el rect táctil para un dar View

Un ejemplo que muestra cómo utilizar el TouchDelegate:

public class TouchDelegateSample extends Activity { 
    Button mButton; 
    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.touch_delegate_view); 
    mButton = (Button)findViewById(R.id.delegated_button); 
    View parent = findViewById(R.id.touch_delegate_root); 
    // post a runnable to the parent view's message queue so its run 
after 
    // the view is drawn 
    parent.post(new Runnable() { 
     @Override 
     public void run() { 
     Rect delegateArea = new Rect(); 
     Button delegate = TouchDelegateSample.this.mButton; 
     delegate.getHitRect(delegateArea); 
     delegateArea.top -= 200; 
     TouchDelegate expandedArea = new TouchDelegate(delegateArea, 
delegate); 
     // give the delegate to an ancestor of the view we're 
delegating the 
     // area to 
     if (View.class.isInstance(delegate.getParent())) { 
      ((View)delegate.getParent()).setTouchDelegate(expandedArea); 
     } 
     } 
    }); 
    } 
} 

hitTest()

Vea si un punto de golpe dado está dentro de los límites del marcador de un elemento. Anular para modificar la forma en que se golpea un elemento probado. El punto de golpe es relativo a los límites del marcador. La implementación predeterminada simplemente verifica si el punto de golpe está dentro de los límites tocables del marcador.

+0

Creo que no es así. Ese código es para posicionar la superposición del globo. –

+0

Para la depuración puede llamar a 'View.getHitRect()'. Creo que será útil – Reno

+0

Gracias por la respuesta ... el marcador no es una Vista, es un elemento superpuesto. Por favor, compruebe MyItemizedOverlay.java. Gracias. –

1

Este es el comportamiento predeterminado de ItemizedOverlay. Por lo general, 25x25 px no es un área táctil adecuada para la mayoría de los dedos humanos.

Debe anular el método hitTest() si desea modificar la forma en que se prueba un elemento de superposición.

+2

¿Puedes dar un ejemplo de prueba de impacto? – Jatin

Cuestiones relacionadas