모바일 프로그래밍/안드로이드

안드로이드 간단히 View 움직이게 하기 (Drag and Drop)

창굴이 2019. 4. 12. 18:33

View에 Touch 이벤트로 움직이는 모션을 구현하고자 할 때

var moveX = 0f
var moveY = 0f  

move_view.setOnTouchListener { v, event ->
    when(event.action) {
        MotionEvent.ACTION_DOWN -> {
            moveX = v.x - event.rawX
            moveY = v.y - event.rawY
        }

        MotionEvent.ACTION_MOVE -> {
            v.animate()
                    .x(event.rawX + moveX)
                    .y(event.rawY + moveY)
                    .setDuration(0)
                    .start()
        }
    }

    true
}

움직이고자 하는 View에 setOnTouchListener에 위와 같은 리스너를 구현한다.

 

ACTION_DOWN 이벤트가 발생했을 경우 View의 위치를 저장하고

ACTION_MOVE 이벤트가 발생했을 경우 View의 위치를 저장한 변수를 이용하여 이동하는 애니메이션을 구현