Android 谷歌地图标记可点击区域

Android 谷歌地图标记可点击区域,android,google-maps,Android,Google Maps,我用这个例子: 我的问题是,可点击区域比标记本身更宽。例如,我的谷歌地图标记是25x25,那么可点击区域将扩展到70x70。这是重叠标记的一个大问题 当我点击箭头的顶端时,onTap被激活,即使点击区域远离标记 请帮帮我。谢谢。调试: 尝试对视图使用,您可以为给定的视图指定Touch rect 演示如何使用TouchDelegate的示例: public class TouchDelegateSample extends Activity { Button mButton; @Ove

我用这个例子:

我的问题是,可点击区域比标记本身更宽。例如,我的谷歌地图标记是25x25,那么可点击区域将扩展到70x70。这是重叠标记的一个大问题

当我点击箭头的顶端时,onTap被激活,即使点击区域远离标记

请帮帮我。谢谢。

调试:

尝试对视图使用,您可以为给定的
视图指定Touch rect

演示如何使用
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); 
        } 
      } 
    }); 
  } 
} 

查看给定的生命点是否在物品标记的范围内。重写以修改项目命中测试的方式。命中点相对于标记的边界。默认实现只是检查命中点是否在标记的可触摸范围内


这是
ItemizedOverlay
的默认行为。25x25像素对于大多数人类手指来说通常不是一个合适的可触摸区域


如果要修改覆盖项命中的测试方式,应该重写
hitTest()
方法。

要进行调试,可以调用
View.getHitRect()
。我想会有帮助的谢谢你的答复。。标记不是视图,而是覆盖项。请检查MyItemizedOverlay.java。谢谢。
MyItemizedOverlayItem
extends
ballooditemizedoverlay
,这就是你可以覆盖的地方。你能举个命中测试的例子吗?你解决过这个问题吗?在HTML版本中,我只看到自定义标记图像的问题,而不是默认标记图像的问题