如何检测何时触摸可绘制的

时间:2010-11-27 00:01:24

标签: android touch drawable

我正在开发一个应用程序,其中包含一组用户可以拖动的小图像的画布,以及用户将从中拖动以创建新图像对象或将现有图像拖到其中的“框” ,它将删除它。

检测用户是否触摸了某个区域或屏幕上的图像的最佳方法是什么?首先想到的是将触摸坐标与每个对象的坐标进行比较,但这看起来有点麻烦。有没有更好的,或内置的方式?

由于

2 个答案:

答案 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);  
  }
});