【问题标题】:Android MapView ItemizedOverlay Draw onTapAndroid MapView ItemizedOverlay 绘制 onTap
【发布时间】:2011-09-05 22:06:52
【问题描述】:

我正在尝试在 ItemizedOverlay 的 Draw 方法中绘制自定义形状。是否可以为绘制的形状获取 onTap 事件。 目前 onTap 适用于默认可绘制/标记。如何使它适用于 Draw 方法中绘制的形状?

【问题讨论】:

    标签: android canvas android-mapview itemizedoverlay touch-event


    【解决方案1】:

    看起来你可以覆盖 逐项叠加中的 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;
        }
    

    问候, 斯蒂芬

    【讨论】:

    • 是的,这适用于默认标记,但不适用于画布上的绘图。
    • 让我改写一下,我可以将画布绘图设为默认标记吗?
    • 不知道你是否明白我的提议。但是您是否覆盖我提到的方法?你尝试了什么?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多