Android - Остановить тень от зоны
Я не могу понять, как не дать тени покинуть определенную зону при перетаскивании.
У вас есть идеи, как это сделать?
Заранее спасибо
1 ответ
Решение
Итак, я наконец-то решил это только с помощью onTouch:
@Override
public boolean onTouch(View v, MotionEvent event) {
// Handles each of the expected events
switch (event.getAction()) {
case MotionEvent.ACTION_DOWN:
if (initPosX == 0 && initPosY == 0) {
initPosX = myImage.getX();
initPosY = myImage.getY();
}
// First finger down
text.setText("ACTION_DOWN x: " + event.getRawX() + ", y: " + event.getRawY());
break;
case MotionEvent.ACTION_UP:
// Last finger to be removed
text.setText("ACTION_UP x: " + event.getRawX() + ", y: " + event.getRawY());
myImage.setX(initPosX);
myImage.setY(initPosY);
break;
case MotionEvent.ACTION_MOVE:
// A finger moves
float calc_X = event.getRawX() - initPosX / 2 + myImage.getWidth() / 2;
float calc_Y = event.getRawY() - initPosY / 2 - myImage.getHeight() / 2;
if(calc_X > initPosX - delta && calc_X < initPosX + delta)
myImage.setX(calc_X);
if(calc_Y > initPosY - delta && calc_Y < initPosY + delta)
myImage.setY(calc_Y);
text.setText("X: " + event.getRawX() + "\nY: " + event.getRawY());
break;
}
return true;
}
Это такой позор, хотя onDragListtener не способен делать такие базовые вещи... Я думаю, команда Android сделала это нарочно.
Отдельное спасибо pskink.