728x90
res파일 아래에 animation 폴더 생성하기
왼쪽 -> 오른쪽 / 오른쪽 -> 왼쪽으로 전환
slide_left_enter.xml
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android"
android:shareInterpolator="false">
<translate
android:duration="500"
android:fromXDelta="-100%"
android:fromYDelta="0%"
android:toXDelta="0%"
android:toYDelta="0%" />
</set>
slide_right_enter
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
<translate
android:duration="500"
android:fromXDelta="0%"
android:fromYDelta="0%"
android:toXDelta="-100%"
android:toYDelta="0%" />
</set>
slide_left_exit
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android"
android:shareInterpolator="false">
<translate
android:duration="500"
android:fromXDelta="0%"
android:fromYDelta="0%"
android:toXDelta="100%"
android:toYDelta="0%" />
</set>
slide_right_exit
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
<translate
android:duration="500"
android:fromXDelta="0%"
android:fromYDelta="0%"
android:toXDelta="-100%"
android:toYDelta="0%" />
</set>
duration : 애니메이션 지속되는 시간 지정
from/to -> 어디로 이동할지 지정하는 것
위 -> 아래 / 아래 -> 위
slide_up_enter.xml
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android"
android:shareInterpolator="false">
<translate
android:duration="500"
android:fromXDelta="0%"
android:toXDelta="0%"
android:fromYDelta="100%"
android:toYDelta="0%" />
</set>
slide_down_enter.xml
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android"
android:shareInterpolator="false">
<translate
android:duration="500"
android:fromXDelta="0%"
android:toXDelta="0%"
android:fromYDelta="-100%"
android:toYDelta="0%" />
</set>
slide_up_exit.xml
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android"
android:shareInterpolator="false">
<translate
android:duration="500"
android:fromXDelta="0%"
android:toXDelta="0%"
android:fromYDelta="0%"
android:toYDelta="-100%" />
</set>
slide_down_exit.xml
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android"
android:shareInterpolator="false">
<translate
android:duration="500"
android:fromXDelta="0%"
android:toXDelta="0%"
android:fromYDelta="0%"
android:toYDelta="100%" />
</set>
액티비티 전환시 startActivity() 이후 overridePendingTransition
overridePendingTransition(시작할때 애니메이션, 끝날때 애니메이션)
액티비티가 많아지면 사용하는데 불편한 점이 많기 때문에, Kotlin의 Extension기능을 사용할 수 있음
Extenstion 파일을 하나 만들어서 activity 확장함수를 만들 수 있습니다.
fun Activity.slideLeft() {
overridePendingTransition(R.anim.slide_left_enter, R.anim.slide_left_exit)
}
fun Activity.slideRight() {
overridePendingTransition(R.anim.slide_right_enter, R.anim.slide_right_exit)
}
fun Activity.slideUp() {
overridePendingTransition(R.anim.slide_up_enter, R.anim.slide_up_exit)
}
fun Activity.slideDown() {
overridePendingTransition(R.anim.slide_down_enter, R.anim.slide_down_exit)
}
참고 ;
728x90
'기타 > Android' 카테고리의 다른 글
[Kotlin] 코틀린 HashMap value 기준으로 정렬하기 (0) | 2022.02.28 |
---|---|
[ Android ] Smoke animation - 연기 효과 주기 (Lottie 사용하기) (0) | 2022.02.27 |
[Android] 상태바, 타이틀바 없애기 (0) | 2022.02.20 |
[Android] shape 속성 (0) | 2022.02.19 |
[Android] Progressbar 커스텀하기 (색상변경, 테두리) (0) | 2022.02.19 |