0
指の動きに合わせてビューを移動したい場合は、移動した距離を確認したい移動距離が予想よりも小さい場合は、ビューを元の位置に戻す必要があります。Android Animation:条件が満たされていないと、指でスムーズにビューを移動して元の位置に移動する方法
私はたくさんの検索をしましたが、以下のコードに到達しましたが、これは期待どおりに機能しません。触れると2つのビューが表示され、私の指の動きに左右されません。
myView.setOnTouchListener(new View.OnTouchListener() {
@Override
public boolean onTouch(View view, MotionEvent motionEvent) {
float dX = 0, dY = 0;
originalX = myView.getX();
originalY = myView.getY();
switch (motionEvent.getAction()) {
case MotionEvent.ACTION_DOWN:
x1 = motionEvent.getX();
break;
case MotionEvent.ACTION_UP:
x2 = motionEvent.getX();
float deltaX = x2 - x1;
if (Math.abs(deltaX) > MIN_DISTANCE) {
myView.animate()
.alpha(0.0f)
.x(motionEvent.getRawX())
.y(motionEvent.getRawY())
.setDuration(500)
.setListener(new Animator.AnimatorListener() {
@Override
public void onAnimationStart(Animator animator) {
}
@Override
public void onAnimationEnd(Animator animator) {
myView.setVisibility(View.GONE);
}
@Override
public void onAnimationCancel(Animator animator) {
}
@Override
public void onAnimationRepeat(Animator animator) {
}
})
.start();
}else {
myView.setX(originalX);
myView.setY(originalY);
}
break;
case MotionEvent.ACTION_MOVE:
myView.setX(motionEvent.getX());
myView.setY(motionEvent.getY());
break;
}
return true;
}
});
どうすればこの問題を解決できますか。