[英]How can I move an object around the screen by dragging in Android?
所以在我的布局中,我有一個我想在屏幕上拖動的球。 我嘗試使用 onTouch() 方法,這些是我的結果:
1) ((Button)findViewById(R.id.ball)).setY(event.getY());
((Button)findViewById(R.id.ball)).setX(event.getX());
由於某種原因,這個非常有問題。 我試着移動球,但它很快在兩個不同的地方來回移動。
2) ((Button)findViewById(R.id.ball)).setY(event.getRawY());
((Button)findViewById(R.id.ball)).setX(event.getRawX());
這個工作得更順暢一些,但是當我開始運動時,球只是傳送到其他地方。 它工作正常,除了它“傳送”的那部分
我想要達到的目標:
球在手指正下方的正常拖動運動(球的 x 和 y 坐標與觸摸的 x 和 y 坐標匹配)
如果需要,我可以添加解釋上述兩種情況的屏幕錄像
首先讓你的活動實現View.OnTouchListener
並導入請求的方法:
public class MyActivity extends AppCompatActivity implements View.OnTouchListener {}
然后更改新創建的onTouch
方法,如下所示:
float dX, dY;
@Override
public boolean onTouch(View view, MotionEvent event) {
switch (event.getAction()) {
case MotionEvent.ACTION_DOWN:
dX = view.getX() - event.getRawX();
dY = view.getY() - event.getRawY();
break;
case MotionEvent.ACTION_MOVE:
view.animate()
.x(event.getRawX() + dX)
.y(event.getRawY() + dY)
.setDuration(0)
.start();
break;
default:
return false;
}
return true;
}
最后將此onTouch
方法設置為您的視圖:
ball.setOnTouchListener(this);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.