我正在开发一个应用程序,其中包含一组用户可以拖动的小图像的画布,以及用户将从中拖动以创建新图像对象或将现有图像拖到其中的“框” ,它将删除它。
检测用户是否触摸了某个区域或屏幕上的图像的最佳方法是什么?首先想到的是将触摸坐标与每个对象的坐标进行比较,但这看起来有点麻烦。有没有更好的,或内置的方式?
由于
答案 0 :(得分:0)
这取决于您的界面有多复杂,但基本上如果您覆盖onTouchEvent
,它将为您提供您所指的坐标。
为了找到被触摸的内容,不经过每个对象,你可以找到简化这个的方法,例如将你的屏幕分成8个网格,并知道每个对象所在的网格,以便当触摸屏幕时,您可以找到可能位于该网格中的对象,因此您可以查看更少的项目。
有关如何使用onTouchEvent
的简要回答,请查看:
http://androidforums.com/android-games/210019-touch-event-image-made-canvas.html
答案 1 :(得分:-1)
Android中的View类有一个onClickListener,可用于检测用户何时点击View。如果您将“图像”(当您调用它们)实现为视图时,您只需向每个图像添加一个单击侦听器即可查找单击的视图。像这样添加监听器:
// 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);
}
});