我正在研究一个具有带有一堆小图像的画布的应用将删除它。

检测用户是触摸区域还是屏幕上图像的最佳方法是什么?想到的第一件事显然是将触摸坐标与每个对象的坐标进行比较,但这似乎有些麻烦。有更好的或内置的方式吗?

谢谢

有帮助吗?

解决方案

看法 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

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top