gpt4 book ai didi

android - 逐项叠加 HitTest

转载 作者:行者123 更新时间:2023-11-29 22:26:12 27 4
gpt4 key购买 nike

我正在使用这种方法来检测是否有人点击了叠加层。现在一切正常,除了点击区域太小。所以我查看了 api,它说“查看给定的命中点是否在项目标记的范围内。”。

我像这样把边界变大了:

Log.d("debug", "Marker propertie 1: "  + marker.getBounds());   //output:Marker propertie 1: Rect(0, 0 - 0, 0)

Rect square = new Rect(0, 0, 200, 200);
marker.setBounds(square);
Log.d("debug", "Marker propertie 2: " + marker.getBounds()); //output:Marker propertie 2: Rect(0, 0 - 200, 200)
if (hitTest(item, marker, x-p.x, y-p.y)) {
//...
}

但是两种改变边界的方法都不会改变点击区域。有人可以提示我如何增加可绘制对象的点击区域吗?

最佳答案

这是 google maps api?如果您想扩展边界,您可以将扩展的 itemizedOverlay 的 hitTest 覆盖为类似这样的东西。

@Override
protected boolean hitTest(OverlayItem overlayItem, Drawable drawable, int x, int y) {
Rect bounds = drawable.getBounds();
int newLeft = (int) (200 * ((double)bounds.left / (double)bounds.width()) ) ;
int newTop = (int) (200 * ((double)bounds.top / (double)bounds.height()) );
Rect square = new Rect(newLeft, newTop, 200, 200);
return square.contains(x, y);
}

刚刚在我的 map 上测试过似乎有效。

关于android - 逐项叠加 HitTest ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5866588/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com