Я пытаюсь настроить GridView кнопок, которые реагируют на onTouch. Например, если я проведу пальцем по экрану по горизонтали, вертикали или диагонали, я хочу, чтобы кнопки, к которым вы прикоснулись, были выбраны. Я попытался установить OnTouchListener для кнопок, но это не сработало, только первая кнопка в событии перетаскивания получила события onTouch.
Затем я попытался создать OnTouchListener для GridView и затем использовать координаты X, Y, чтобы определить, какие кнопки касались. Кажется, это тоже не работает, так как события MOTION_DOWN передаются в onTouch () GridView только в том случае, если я начинаю перетаскивание на самом краю GridView. На самом деле, если я перетаскиваю палец горизонтально по сетке, события onTouch вообще не запускаются, если я не начну перетаскивание на краю GridView. Кто-нибудь знает лучший способ сделать это?
Заранее спасибо.
gridview.setOnTouchListener(new View.OnTouchListener()
{
@Override
public boolean onTouch(@SuppressWarnings("unused") View view, MotionEvent event)
{
float X = event.getX();
float Y = event.getY();
switch (event.getAction()) {
case MotionEvent.ACTION_DOWN:
System.out.println("Down: " + X + "," + Y);
break;
case MotionEvent.ACTION_MOVE:
System.out.println("Move: " + X + "," + Y);
break;
case MotionEvent.ACTION_UP:
System.out.println("Up: " + X + "," + Y);
break;
}
return true;
}
}