2014-02-27 44 views
1

我正在尝试制作一个“点”克隆,并且难以找出如何检测用手指轻轻一触的所有图像。我相信我应该使用视图组,但不知道该从哪里去,任何其他帮助将不胜感激。我如何检测在Android中已被触摸的所有ImageView?

+0

如此触摸或滑动?可以将不相交的动作分配给两个事件 – mangusta

+1

它们清楚地表示来自滑动的碰撞检测。对新用户很好!用户问这个问题,你需要告诉我们你已经尝试了什么。这不是一个自由职业者论坛,人们没有得到报酬为你编写你的应用程序 –

回答

1

有很多方法可以做到这一点 - 这里有一个方法。

创建一个RelativeLayout并给它一个id。在你的活动课上,找到这个RelativeLayout并在其上设置一个OnTouchListener

现在填充包含图像视图的2d数组,并将它们添加到您的RelativeLayout。

OnTouch回调方法中,您将有权访问MotionEvent对象,您可以通过该对象访问用于描述用户手指在屏幕上移动时的手指位置的运动事件。将提供的x和y坐标与2d数组中的图像视图的x和y位置进行比较,如果坐标与图像视图的坐标相匹配,则将选定的图像视图添加到ArrayList。

float x,y; //lets say these are populated with a point/average on your swipe path 
View element = ... ; //view representing one item in your array 
if (x > element.getX() && x < element.getX() + element.getWidth()) { 
    //Collides with x axis, check y axis now 
     //if that also colides, save this element in a set/list 
} 

当用户从屏幕上抬起他/她的手指时,所有选定的图像视图将被存储在ArrayList中。

+0

好的答案,我要添加一段代码,不要冒犯,它只会帮助具有共同特点的新用户问题 –