Kotlin 으로 Activity 이동시 화면이동 애니메이션 을 해보겠습니다.
MainActivty 입니다.
총 두개의 버튼을 만들어줍니다.
1. SlideLeftActivity 로 이동하는는 버튼
2. SlideUpActivity 로 이동하는 버튼
val intent = Intent(Context, Class<?>) 를 통해 어디 Activity로 이동할지 지정합니다.
overridePendingTransition(int enterAnim, int exitAnim) 를 통해 처음과 끝에 대한 애니메이션 을 지정해줍니다.
class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
// 왼쪽에서 오른쪽 방향으로 SlideLeftActivity 로 화면이동.
findViewById<Button>(R.id.left_btn).setOnClickListener {
val intent = Intent(this, SlideLeftActivity::class.java)
startActivity(intent)
// 왼쪽에서 오른쪽으로 activity 화면이 이동하게 애니메이션 지정
overridePendingTransition(R.anim.slide_left_enter, R.anim.slide_left_exit)
}
// 아래에서 위로 방향으로 SlideUpActivity 로 화면이동.
findViewById<Button>(R.id.down_btn).setOnClickListener {
val intent = Intent(this, SlideUpActivity::class.java)
startActivity(intent)
// 아래에서 위로 activity 화면이 이동하게 애니메이션 지정
overridePendingTransition(R.anim.slide_up_enter, R.anim.slide_up_exit)
}
}
}
이제 여러분들은 slide_left_enter가 어떻게 되어있는지 궁금하실것같은데
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>
slde_left_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:fromYDelta="0%"
android:toXDelta="100%"
android:toYDelta="0%" />
</set>
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_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>
다양한 애니메이션 이동을 translate 태그를 통해 사용이 가능한데요
translate 에 속성에 대해 공부해봅시다.
duration : 효과 시간 1/1000 단위
fromXDelta : x의 시작위치
fromYDelta : T의 시작 위치
toXDelta : X의 끝 위치
toYDelta : Y의 끝 위치
첫번쨰로
slide_left_enter.xml -> slide_left_exit.xml 으로 애니메이션이 작용할경우
fromXDelta = -100% -> fromXDelta = 0%
toXDelta = 0% => toXDelta=100%
이렇게 왼쪽에서 오른쪽으로 애니메이션이 실행이 되며 Activity가 띄워집니다.
이부분을 고려해 오른쪽에서 왼쪽으로, 위에서 아래로 Activity가 나타나는 애니메이션을 만드는게 가능합니다.
'안드로이드 코틀린' 카테고리의 다른 글
[Kotlin][Android] 이미지 회전 (0) | 2022.01.30 |
---|---|
[Kotlin][Android] url로 가져온 이미지 다운로드하기 (0) | 2022.01.22 |
[Kotlin][Android] FCM 메시지 받기 (0) | 2022.01.11 |
[Kotlin][Android] 이미지 url로 이미지 로딩하기 (0) | 2022.01.10 |
[Kotlin][Android] 비밀번호 hash 암호화하기 (0) | 2022.01.05 |