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의 위치를 저장한 변수를 이용하여 이동하는 애니메이션을 구현
'모바일 프로그래밍 > 안드로이드' 카테고리의 다른 글
RecyclerView의 scrollToPosition나 smoothScrollToPosition 사용 시 Item사이의 margin이 있는 경우 (0) | 2019.05.10 |
---|---|
코틀린 접근 제한자 (Visibility Modifiers): private, protected, internal, public (0) | 2019.04.19 |
Dagger2에서 발생하는 java.lang.IllegalArgumentException: No injector factory bound for Class 에러 (0) | 2019.04.18 |
ConstraintLayout의 개념과 기본 사용법 (3) | 2018.04.23 |
Android] Retrofit을 이용한 토큰 인증 방식 구현 (1) | 2018.04.03 |