首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为android中的自定义标记定义一个可点击/可触摸的区域-api-2

为android中的自定义标记定义一个可点击/可触摸的区域-api-2
EN

Stack Overflow用户
提问于 2018-01-24 16:32:12
回答 1查看 1.1K关注 0票数 2

我不熟悉谷歌地图,或者更确切地说,是android编程。尽管如此,我还是成功地为互联网浏览器建立了谷歌地图。我创建了几个具有特定可点击区域的自定义标记(带有自己的图标的标记)。

对于用于互联网浏览器的google地图,请按

代码语言:javascript
复制
      var shape = {
      coords: [1, 1, 1, 20, 18, 20, 18, 1],
      type: 'poly'
    };
    for (var i = 0; i < beaches.length; i++) {
      var beach = beaches[i];
      var marker = new google.maps.Marker({
        position: {lat: beach[1], lng: beach[2]},
        map: map,
        icon: image,
        shape: shape,
        title: beach[0],
        zIndex: beach[3]
      });
    }

因此,您定义了一个形状,它将是标记的可点击区域。这个很管用。

现在我喜欢为安卓设备开发谷歌地图应用程序。我想要相同的标记图标,我在谷歌地图上使用的浏览器。虽然这不是像以前那样用JavaScript编写的,但它是用Java编写的,我已经这样做了。但是,,我无法找到一个选项来创建一个可点击的区域,或者更确切地说,为我的安卓地图上的定制标记创建一个可触摸的区域!甚至在我的定制图标周围有一个云雀区域,我无法改变它。

,你知道一个选项吗?我可以为安卓的谷歌地图标记定义可点击/可触摸区域吗?,还是不可能,因为拇指不像电脑鼠标那样精确?

有问题的我的地图截图

致以良好的问候,任务经理

EN

回答 1

Stack Overflow用户

发布于 2018-01-24 16:39:50

您需要注册OnInfoWindowClickListenerCallback。在GoogleMap中有这样一种方法:

代码语言:javascript
复制
map.setOnInfoWindowClickListener(new OnInfoWindowClickListener()
        {
            @Override
            public void onInfoWindowClick(Marker arg0) {
                //Handle your click here                
        }
        }); 

更新:

代码语言:javascript
复制
// Set a listener for marker click.    
mMap.setOnMarkerClickListener(this);

/** Called when the user clicks a marker. */
@Override
public boolean onMarkerClick(final Marker marker) {

    // Retrieve the data from the marker.
    Integer clickCount = (Integer) marker.getTag();

    // Check if a click count was set, then display the click count.
    if (clickCount != null) {
        clickCount = clickCount + 1;
        marker.setTag(clickCount);
        Toast.makeText(this,
                       marker.getTitle() +
                       " has been clicked " + clickCount + " times.",
                       Toast.LENGTH_SHORT).show();
    }

    // Return false to indicate that we have not consumed the event and that we wish
    // for the default behavior to occur (which is for the camera to move such that the
    // marker is centered and for the marker's info window to open, if it has one).
    return false;
}

有关更多细节,请参阅标记。此外,请确保您正在使用的标记图像中没有填充。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48427346

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档