0
Image showing intended result的Android停止拖出屏幕從View
的中心點有沒有辦法阻止拖過使用onTouch移動事件屏幕視圖的中心點?
我可以檢測點,但我需要的邏輯停止視圖移動,然後重新接合的拖動,當用戶向後划動。設置一個布爾值將禁用移動事件這是沒有好,並設置視圖返回到一個已知的好點的跳動。
有這個任何地方沒有答案,所以我不知道,如果它甚至有可能...
Image showing intended result的Android停止拖出屏幕從View
的中心點有沒有辦法阻止拖過使用onTouch移動事件屏幕視圖的中心點?
我可以檢測點,但我需要的邏輯停止視圖移動,然後重新接合的拖動,當用戶向後划動。設置一個布爾值將禁用移動事件這是沒有好,並設置視圖返回到一個已知的好點的跳動。
有這個任何地方沒有答案,所以我不知道,如果它甚至有可能...
您可以使用此做出限制在屏幕邊界的視圖。
int width=v.getLayoutParams().width;;
int height=v.getLayoutParams().height;
switch (event.getAction()) {
case MotionEvent.ACTION_DOWN:
dX = v.getX() - event.getRawX();
dY = v.getY() - event.getRawY();
return true;
case MotionEvent.ACTION_MOVE:
if (width == windowWidth && height == windowHeight){}
else {
v.animate()
.x(event.getRawX() + dX)
.y(event.getRawY() + dY)
.setDuration(0)
.start();
if (event.getRawX() + dX + width > windowWidth) {
v.animate()
.x(windowWidth - width)
.setDuration(0)
.start();
}
if (event.getRawX() + dX < 0) {
v.animate()
.x(0)
.setDuration(0)
.start();
}
if (event.getRawY() + dY + height > windowHeight) {
v.animate()
.y(windowHeight - height)
.setDuration(0)
.start();
}
if (event.getRawY() + dY < 0) {
v.animate()
.y(0)
.setDuration(0)
.start();
}
return true;
}
其中v是在onTouchListener
認爲這是一半的時候有我的代碼來實現,不過鑑於只有向下移動,右。我需要它移動頂部和左邊,任何想法如何適應這個或我要去哪裏錯了? –
請上傳過來的完整代碼,您使用的是移動,因爲這個代碼是爲我工作完美。 – Anmol
好吧,你是正確的代碼是好的。我創建了一個自定義視圖,它可以設置幾個維度,並在創建時移動佈局。這就是爲什麼什麼也沒有爲我工作好,大量的試驗和錯誤上移動的利潤率,我終於得到了在那裏我需要的不過之後。感謝Anmol的幫助,非常感謝! –