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



我是谷歌地图或安卓编程的新手。尽管如此,我只是设法为互联网浏览器设置了一个谷歌地图。我创建了几个自定义标记(带有我自己的图标的标记),它们具有特定的可点击区域。

对于互联网浏览器的谷歌地图,这下降

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编写的,我已经做到了。但是我无法找到一个选项来为我的安卓谷歌地图上的自定义标记创建一个可点击或更确切地说是一个可触摸的区域!我的自定义图标周围甚至有一个大区域,我无法更改它。

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

我的地图有问题的屏幕截图

带着亲切的问候, 任务管理器

您需要注册OnInfoWindowClickListenerCallbackGoogleMap有一种方法可以做到这一点:

map.setOnInfoWindowClickListener(new OnInfoWindowClickListener()
{
@Override
public void onInfoWindowClick(Marker arg0) {
//Handle your click here                
}
}); 

更新:

// 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;
}

有关更多详细信息,请参阅标记。还要确保您用于标记的图像中没有填充。

最新更新