Android:如何检查矩形是否包含触摸点?

编程入门 行业动态 更新时间:2024-10-12 18:17:44
本文介绍了Android:如何检查矩形是否包含触摸点?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧! 问题描述

我会尝试开发一个可以绘制平面测量图的应用程序。因此,每个房间都有自己的ID或名称,如果我触摸房间,我希望显示具有该ID或名称的Toast消息。问题是如何检查是否以及哪条路径被触摸!!

我看到很多关于这个问题的话题讨论。有人说使用getBounds方法,然后包含检查接触点是否在RECT中的方法。但是,我猜getBounds返回包含路径的最小Rect,对吗?

因此,房间具有不同的自定义几何形状,因此,如果我得到关于2个封闭房间的界限,方法可以返回一组共享的点。坏的!每个房间都只有他们的面积点。我如何解决此问题?

在iOS中我可以使用PathContainsPoint方法,但不幸的是,Android Path没有类似的方法。

推荐答案

好的,我解决了问题。我发布了示例代码:

Path p; Region r; @Override public void onDraw(Canvas canvas) { p = new Path(); p.moveTo(50, 50); p.lineTo(100, 50); p.lineTo(100, 100); p.lineTo(80, 100); p.close(); canvas.drawPath(p, paint); RectF rectF = new RectF(); pputeBounds(rectF, true); r = new Region(); r.setPath(p, new Region((int) rectF.left, (int) rectF.top, (int) rectF.right, (int) rectF.bottom)); } public boolean onTouch(View view, MotionEvent event) { Point point = new Point(); point.x = event.getX(); point.y = event.getY(); points.add(point); invalidate(); Log.d(TAG, "point: " + point); if(r.contains((int)point.x,(int) point.y)) Log.d(TAG, "Touch IN"); else Log.d(TAG, "Touch OUT"); return true; }

更多推荐

Android:如何检查矩形是否包含触摸点?

本文发布于:2023-11-29 21:11:19,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1647639.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:矩形   Android

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!