私は単純なドラッグドロップアプリケーションをアンドロイドで作成しました。今は、ビュー自体に触れることなくビューをx軸上で移動したいと思います。ユーザーが画面に触れた画面。どのようにこの効果を達成できますか。オブジェクトの下をタッチしてビューをドラッグし、それに応じて移動
現在、私はドラッグドロップ操作のチュートリアルを使用しています。私は親ビューでOnTouchListnerを適用しました。しかし、これは良いアイデアではないと思います。誰かが私にそれを行う正しい方法を提案することができます。ここで
は私のコードrel.setOnTouchListener(this);
@Override
public boolean onTouch(View v, MotionEvent event) {
switch (event.getActionMasked()) {
case MotionEvent.ACTION_DOWN:
dX = v.getX() - event.getRawX();
dY = v.getY() - event.getRawY();
lastAction = MotionEvent.ACTION_DOWN;
break;
case MotionEvent.ACTION_MOVE:
v.setY(event.getRawY() + dY);
v.setX(event.getRawX() + dX);
lastAction = MotionEvent.ACTION_MOVE;
break;
case MotionEvent.ACTION_UP:
if (lastAction == MotionEvent.ACTION_DOWN)
Toast.makeText(MainActivity.this, "Clicked!", Toast.LENGTH_SHORT).show();
break;
default:
return false;
}
return true;
}
で、私のXMLコードは、私は、私は答えは、それが助けられるようにsomeone.ThisコードはX上でビューを移動することを書いていますコメントしたよう
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/rel"
android:layout_width="match_parent"
android:layout_height="match_parent">
<ImageView
android:id="@+id/ball"
android:layout_width="50dp"
android:layout_height="50dp"
android:src="@drawable/ball" />
</RelativeLayout>
'MotionEvent.ACTION_MOVE:'から 'v.setY(event.getRawY()+ dY);'行を削除できますか? –
@MayurRaval yesとなり、x軸方向にのみ移動します – AbhayBohra