0
손가락의 움직임과 함께보기를 부드럽게 움직이고 싶다면 이동 한 거리를 확인하고 싶습니다. 거리가 예상 거리보다 적다면 뷰를 초기 위치로 다시 이동해야합니다.Android 애니메이션 : 조건이 만족스럽지 않으면 손가락으로보기를 부드럽게 움직이고 초기 위치로 이동하는 방법
나는 많은 코드를 검색했지만 예상대로 작동하지 않습니다.이를 만질 때 두 개의보기가 나타나고 내 손가락 움직임에 따라 우연히 움직입니다.
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;
}
});
어떻게 해결할 수 있습니까?