При помощи функции
onTouch определяю элемент на который было нажатие пальцем (курсором в эмуляторе), далее делается какой-то жест и палец (курсор в эмуляторе) отпускается над каким-то элементом.
То есть имеются координаты элемента, на котором отпустили палец, проблема в том, что я не знаю как получить его id или получить к нему доступ.
public boolean onTouch(View v, MotionEvent event) {
x = event.getX();
y = event.getY();
switch (event.getAction()) {
case MotionEvent.ACTION_DOWN: // нажатие
topY = button1.getTop();
leftX = button1.getLeft();
rightX = button1.getRight();
bottomY = button1.getBottom();
topY2 = v.getTop();
leftX2 = v.getLeft();
rightX2 = v.getRight();
bottomY2 = v.getBottom();
tv_elem.setText(
topY + "\n" + leftX + "\n" + rightX + "\n" + bottomY + "\n" + "\n" +
topY2 + "\n" + leftX2 + "\n" + rightX2 + "\n" + bottomY2
);
break;
case MotionEvent.ACTION_MOVE: // движение
eX = (int) event.getX();
eY = (int) event.getY();
int x = (int) event.getX() - offset_x;
int y = (int) event.getY() - offset_y;
int w = getWindowManager().getDefaultDisplay().getWidth() - 50;
int h = getWindowManager().getDefaultDisplay().getHeight() - 10;
if (x > w) x = w;
if (y > h) y = h;
tv_elem.setText(
(eX + leftX2) + " " + leftX + " " + rightX + "\n" +
(eY + topY2) + " " + topY + " " + bottomY + "\n"
);
if ((eX + leftX2) > leftX && (eX + leftX2) < rightX && (eY + topY2) > topY && (eY + topY2) < bottomY) {
button1.setBackgroundColor(Color.RED);
} else {
button1.setBackgroundColor(Color.BLUE);
}
break;
case MotionEvent.ACTION_UP: // отпускание
case MotionEvent.ACTION_CANCEL:
/* здесь что-то, чтобы проверить над каким элементом отпустили */
tv_elem.setText("Все, отпустил");
break;
}
return true;
}