我正在尝试创建一个应用程序,其中将显示一个图片,用户需要识别的一些对象(即一个杯子),通过触摸屏幕上图片中的杯子,将绘制一个圆圈如果它有效。
到目前为止,我有一个带有位图的surfaceview作为drawable可以全屏显示,并且在触摸屏幕时,将会在视图中绘制一个圆圈。
我只能想到在图片中手动获取杯子的坐标(硬编码),然后根据触摸event.getX()
和event.getY()
的坐标进行检查。但是当屏幕分辨率发生变化时,这将不起作用。
这样做有什么好办法?这就像我正试图找到一种方法来准确地触摸我在我的应用中定义的某些区域。
答案 0 :(得分:1)
您可以按照建议存储坐标,但可以根据SurfaceView的大小与BitmapDrawable的大小进行调整。例如,如果您知道给定区域是左侧100px,则可以将您的比例视为surfaceView.getWidth()/ bitmapDrawable.getIntrinsicWidth()。将您的比例乘以您的值(100px)以获得最终位置。如果您在图像上保持相同的宽高比,则需要从两者中的较大者(宽度与高度)中获得比例,并对高度和宽度使用相同的比例。
答案 1 :(得分:0)
在给定的分辨率中,杯子的位置是固定的还是在那里变化。
另外,方向(风景,肖像)怎么样?位置也会相应改变吗?
有标准分辨率,因此您始终可以考虑使用分辨率映射位置。
此外,您可以获得X,Y坐标并检查它是否在基于杯子图像的高度和宽度的范围内。
答案 2 :(得分:0)
首先找出屏幕的大小。(屏幕尺寸。)。
现在放置与您的屏幕区域相对应的对象。
例如。保持杯子在SCREENWIDTH - 60并同样检查触摸坐标。
它绝对有效。