반응형

기기에서 작동할 때는 부드럽게 움직인다. gif로 변환하는 과정에서 많이 버벅거려졌다. 

 

 

1. 안드로이드 좌표 체계

부드러운 화면 전환을 위해서는 안드로이드의 좌표 체계를 먼저 알아야 한다. 

좌표 체계는 위와 같이, 실제 보이는 화면의 좌측 상단이 (0,0)을 기준으로 한다.

즉 화면을 '실제 보이는 화면' 위치에서 아래로 내리는 Animation을 주고 싶다면 대략적으로 y좌표를 0에서 100으로 옮기면 될 것 같다는 것을 알 수 있다. 

 

2. 애니메이션 생성

위에서 언급한 화면 이동 효과는 다음 코드와 같이 작성할 수 있다.

이 코드는 res 폴더 안에 anim이라는 폴더를 생성한 후, anim 폴더 안에서 생성해줘야 한다.

<?xml version="1.0" encoding="utf-8"?>
<translate xmlns:android="http://schemas.android.com/apk/res/android"
    android:duration="150"
    android:fromYDelta="0%p"
    android:toYDelta="100%p" />

이렇게 작성해주면 되는데, 여기서 duration은 움직이는데 소요되는 시간을 말한다. ms단위이므로 1000이 1초고, 위 코드와 같이 150이면 0.15초다.

fromYDelta를 0, toYDelta를 100으로 설정해서 화면이 위에서 아래로 내려가는 것을 구현했다. 

 

3. 실제 코드에 적용

이후 위에서 설정한 애니메이션을 코드에 적용시켜주면 된다. 

override fun onBackPressed() {
        super.onBackPressed()
        overridePendingTransition(R.anim.slide_down_from_top, R.anim.slide_down_to_bottom)
    }

이 코드는 뒤로가기가 클릭 됐을 때 호출되는 onBackPressed함수에 위에서 생성했던 애니메이션을 적용한 코드다.

overridePendingTransition을 사용하면 되는데 첫 번째 parameter새로 나타나는 화면이 어떻게 작동할 것인지에 대한 animation두 번째 parameter현재 화면이 어떻게 작동할 것인지에 대한 animation이다.

 

적절하게 잘 활용하면 좀 더 나은 어플리케이션을 만드는데 도움이 될 것이다.

반응형

+ Recent posts