题
我正在研究一个具有带有一堆小图像的画布的应用将删除它。
检测用户是触摸区域还是屏幕上图像的最佳方法是什么?想到的第一件事显然是将触摸坐标与每个对象的坐标进行比较,但这似乎有些麻烦。有更好的或内置的方式吗?
谢谢
解决方案
这 看法 Android中的类具有一个单击键,您可以在用户单击视图时检测该类别。如果您实现“图像”(正如您所调用的那样),则可以将单击侦听器添加到每个视图中,以查找单击的视图。这样添加听众:
// Get a reference to the view from xml (or if you
// have created it dynamically, just use that)
View imageView = findViewById(R.id.my_view);
imageView.setOnClickListener(new OnClickListener()
{
@Override
public void onClick(View v)
{
// Do stuff with view (the View v that is passed is the View that was touched)
doStuff(v);
}
});
其他提示
这取决于您的界面有多复杂,但基本上是您覆盖 onTouchEvent
那将为您带来所指的坐标。
为了找到所触摸的内容,而无需浏览每个对象,您可以找到简化此方法的方法,例如通过将屏幕分配到8个网格中,并知道每个对象都在哪个网格中,以便当屏幕时被触摸,然后您可以找到该网格中可能存在的对象,因此您可以查看的项目更少。
有关如何使用的简短答案 onTouchEvent
您可以看:
http://androidforums.com/android-games/210019-touch-event-image-made-canvas.html
不隶属于 StackOverflow