반응형
✔️ 항시 Animation 커스텀 XML을 만들어 설정해줄 때 (버튼을 눌러 보여질때든 back을 눌러 되돌라올때든)
-> 사용자에게 보여줄 화면 레이아웃이 먼저 설정됨
Activity Animation
- Activity에도 animation 주는 것, 기본적으로 설정되어 있음
- 나타나는Activity / 사라지는 Activity 설정 *이전 액티비티로 돌아올때도( finish() 해줄때도 ) 메서드로 설정 필요
- 애니메이션 설정은 overridePendingTransition 메서드 사용
- startActivity() 호출 다음에 해줌
[MainActivity.kt]
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
binding = ActivityMainBinding.inflate(layoutInflater) // 뷰바인딩 객체
val view = binding.root //뷰바인딩을 통해 레이아웃과 뷰가 결합 -> .root 를 통해 View 객체만를 뽑아내는(?)
setContentView(view)
binding.button.setOnClickListener {
val intent = Intent(this, SecondActivity::class.java)
startActivity(intent)
// 애니메이션 설정은 startActivity 다음에 해줌
//기본
//overridePendingTransition(android.R.anim.slide_in_left,android.R.anim.slide_out_right)
//overridePendingTransition(android.R.anim.fade_in,android.R.anim.fade_out)
//커스텀
overridePendingTransition(R.anim.slide_xml1,R.anim.slide_xml2)
}
}
[SecondActivity.kt]
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
second_binding = ActivitySecondBinding.inflate(layoutInflater) // 뷰바인딩 객체
val view = second_binding.root //뷰바인딩을 통해 레이아웃과 뷰가 결합 -> .root 를 통해 View 객체만를 뽑아내는(?)
setContentView(view)
second_binding.button2.setOnClickListener {
finishActivity()
}
}
// Back Button 누르면 호출되는 메서드 //항상 백버튼에 대해서도 대비 필요
// 액티비티에서 내가 만든 종료 버튼과 백버튼이 동일한 기능하길 원하면 아래처럼 수정 필요!!
override fun onBackPressed() {
//super.onBackPressed() // 부모 클래스의 메서드를 호출하기 때문에 해당 액티비티 종료됨
finishActivity()
}
fun finishActivity() {
finish()
//기본
//overridePendingTransition(android.R.anim.slide_in_left,android.R.anim.slide_out_right) //되돌아올때 반대로 해주면 이상함..
//overridePendingTransition(android.R.anim.fade_in,android.R.anim.fade_out)
//커스텀
overridePendingTransition(R.anim.slide_xml3,R.anim.slide_xml4)
}
[slide_xml1.xml]
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
<translate
android:fromXDelta="-100%"
android:toXDelta="0%"
android:duration = "500"/>
</set>
<!-- 왼쪽 바깥 아이가 오른쪽 안으로 들어오고, 원래 아이는 오른쪽으로 빠짐 -->
[slide_xm2.xml]
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
<translate
android:fromXDelta="0%"
android:toXDelta="100%"
android:duration = "500"/>
</set>
<!-- 왼쪽 바깥 아이가 오른쪽 안으로 들어오고, 원래 아이는 오른쪽으로 빠짐 -->
[slide_xml3.xml]
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
<translate
android:fromXDelta="100%"
android:toXDelta="0%"
android:duration = "500"/>
</set>
<!-- 오른쪽 바깥 아이가 왼쪾 안으로 들어오고, 원래 아이는 왼쪾으로 빠짐 -->
[slide_xml4.xml]
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
<translate
android:fromXDelta="0%"
android:toXDelta="-100%"
android:duration = "500"/>
</set>
<!-- 오른쪽 바깥 아이가 왼쪾 안으로 들어오고, 원래 아이는 왼쪾으로 빠짐 -->
반응형
'Android' 카테고리의 다른 글
[안드로이드/ActionBar] ActionView (0) | 2023.04.25 |
---|---|
[안드로이드/ActionBar] ActionBar 란? (0) | 2023.04.25 |
[안드로이드/Fragment] Fragment Animation (0) | 2023.04.22 |
[안드로이드/Fragment] DialogFragment (0) | 2023.04.22 |
[안드로이드/Fragment] ListFragment (0) | 2023.04.22 |