如何识别Android中触摸的图像区域(而不仅仅是坐标)?

Ale*_*lex 7 android view bitmap touch

我目前正在为我的最后一年项目开发一个Android应用程序,这应该可以帮助自闭症患者通过触摸人体图片来指示什么时候有什么疼.

我遇到的问题是我不知道如何识别他们触摸的图像部分.图像是位图,在ImageView中作为BitmapDrawable保存.第一次被触摸,它通过动画和setFilledAfter(真实)放大,并且当触摸一个区域时应用程序应该识别身体的主要部分(例如头部,左手......).

要识别的区域不是方形的,因此检查坐标不是一个真正的选择.我正在考虑让每个部分被识别为在原始图片上绘制的不同视图,但我也打开其他解决方案.

为了让事情更有趣,应用程序应该可以在手机和平​​板电脑上的不同设备和分辨率上运行.

非常感谢您的帮助.真的需要和赞赏.

编辑

最后我将尝试的是以下内容.我将有两个图像副本,一个用于显示目的,另一个用于内部,我想要识别的区域用不同颜色绘制.所以计划是推断我从Touch事件获得的坐标,找出它对应于原始的像素,使用Bitmap.getPixel()来确定它的颜色,然后有一个case语句返回每个部分的字符串.

我正在编码这个,如果有人有兴趣留言,我会发布一切都解决了,我有人要求它甚至适当的代码:D

感谢Shade为我提供了一些其他选择.

Sha*_*ade 2

没有对此进行太多考虑,您的想法(使用覆盖视图检测触摸)似乎不错。

除此之外,坐标也是一个好主意 - 您只需定义图像的命名区域并检查触摸点是否在某个区域内。可能有点乏味,但与拥有 20 个视图相比,在复杂性方面可能会更好。它也肯定比在应用程序中添加 20 个额外视图更快。

但最重要的是,我认为你应该尝试一下,看看什么适合你的具体情况,因为其他一切都是猜测。

编辑:

如果您确实选择使用多边形方法,那么您将不得不处理确定点是否在多边形内部的问题(请参阅此处的简短说明)。

另外,关于视图,Android 中的视图被定义为“占据屏幕空间的矩形区域”。这样就消除了非矩形视图的可能性。也许您有可能在视图内定义一个非矩形的可点击区域,但我不知道这是否可能。