我有一個按鈕,我可以在任何地方將其拖動到屏幕上,但它會在屏幕外的同時拖動,所以如何拖動只有裏面的畫面,因此,它不應該走出屏幕的拖動按鈕正在屏幕外?
Button.setOnTouchListener(new TextView.OnTouchListener() {
public boolean onTouch(View view, MotionEvent event) {
X_button = (int) event.getRawX();
Y_button= (int) event.getRawY();
switch (event.getAction() & MotionEvent.ACTION_MASK) {
case MotionEvent.ACTION_DOWN:
RelativeLayout.LayoutParams lParams = (RelativeLayout.LayoutParams) view.getLayoutParams();
_xDelta = X_button - lParams.leftMargin;
_yDelta = Y_button - lParams.topMargin;
break;
case MotionEvent.ACTION_UP:
if(!isMoving)
{
view.performClick();
}
isMoving=false;
break;
case MotionEvent.ACTION_POINTER_DOWN:
break;
case MotionEvent.ACTION_POINTER_UP:
break;
case MotionEvent.ACTION_MOVE:
isMoving=true;
RelativeLayout.LayoutParams layoutParams = (RelativeLayout.LayoutParams) view
.getLayoutParams();
layoutParams.leftMargin = X_button - _xDelta;
layoutParams.topMargin = Y_button - _yDelta;
layoutParams.rightMargin = -250;
layoutParams.bottomMargin = -250;
view.setLayoutParams(layoutParams);
break;
}
return true;
}
});
感謝您的回答.....我應該在哪裏做這些if和else if?在MotionEvent.Action_Move中?請爲我詳細介紹一下im新的android。這裏是什麼deltaX? – sachin
如果我刪除「layoutParams.rightMargin = -250; layoutParams.bottomMargin = -250;」這兩個我的按鈕不會離開屏幕底部和右側,但我的按鈕會縮小拖動底部和右邊 – sachin
嗨Sachin,是的,你需要將這些If/Else條件放在你的'ACTION_MOVE'情況下。而且我沒有得到關於佈局利潤率的第二個問題。你能否詳細說明一下? – Saket