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