【发布时间】:2011-09-05 22:06:52
【问题描述】:
我正在尝试在 ItemizedOverlay 的 Draw 方法中绘制自定义形状。是否可以为绘制的形状获取 onTap 事件。 目前 onTap 适用于默认可绘制/标记。如何使它适用于 Draw 方法中绘制的形状?
【问题讨论】:
标签: android canvas android-mapview itemizedoverlay touch-event
我正在尝试在 ItemizedOverlay 的 Draw 方法中绘制自定义形状。是否可以为绘制的形状获取 onTap 事件。 目前 onTap 适用于默认可绘制/标记。如何使它适用于 Draw 方法中绘制的形状?
【问题讨论】:
标签: android canvas android-mapview itemizedoverlay touch-event
看起来你可以覆盖 逐项叠加中的 hittest 方法。
用测试替换方法,看看你是否达到了你的形状。 之后请在此处发布您的解决方案以供其他人使用。
这是原始的android版本
protected boolean hitTest(OverlayItem item, Drawable marker, int hitX, int hitY) {
Point eventPos = new Point(hitX, hitY);
Point itemHitPosOnDisplay = calculateItemPostionRelativeToDisplay(item.getPoint());
Point distance = Point.substract(eventPos, itemHitPosOnDisplay);
if (marker == null) {
marker = this.defaultMarker;
}
if (Math.abs(distance.x) < marker.getIntrinsicWidth() / 2
&& Math.abs(distance.y) < marker.getIntrinsicHeight() / 2) {
return true;
}
return false;
}
问候, 斯蒂芬
【讨论】: