我无法确定在拖动时如何阻止阴影离开特定区域。
您对如何做到这一点有任何想法吗?
提前致谢
答案 0 :(得分:0)
好的,所以我最终只用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。