我正在尝试制作一个“Dots”克隆,并且很难找到如何通过一次滑动手指来检测所有图像视图。我相信我应该使用一个视图组,但不知道从那里去哪里,任何其他帮助将不胜感激。
答案 0 :(得分:1)
有很多方法可以做到这一点 - 这是其中之一。
创建RelativeLayout并为其指定ID。在您的活动类中,找到此RelativeLayout并在其上设置OnTouchListener
。
现在填充包含图像视图的二维数组,并将它们添加到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中。