[안드로이드/Activity] Activity Animation

2023. 4. 22. 23:26· Android
목차
  1. Activity Animation
반응형

✔️ 항시 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
  1. Activity Animation
'Android' 카테고리의 다른 글
  • [안드로이드/ActionBar] ActionView
  • [안드로이드/ActionBar] ActionBar 란?
  • [안드로이드/Fragment] Fragment Animation
  • [안드로이드/Fragment] DialogFragment
gangmini
gangmini
gangmini
게으른J 의 테크로그
gangmini
전체
오늘
어제
글쓰기방명록관리자
  • 분류 전체보기 (127)
    • 인공지능(AI) & 데이터 분석 (5)
    • Android (91)
      • Coroutine (3)
      • Compose (0)
      • 안드로이드 CS (0)
    • Kotlin (3)
    • Data Structure (0)
    • 알고리즘 (20)
      • 알고리즘 이론 (11)
      • 백준(BOJ) 문제 풀이 (9)
    • Build Tool (2)
    • Git (2)
    • 일본어 (0)
    • 기타(취준, 활동) (0)


인기 글



최근 댓글



최근 글

hELLO · Designed By 정상우.v4.2.2
gangmini
[안드로이드/Activity] Activity Animation
상단으로

티스토리툴바

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.