Kotlin/TIL

TIL (04.02)

내손은개발 🐾 2024. 4. 2. 22:34

codekata


 

[프로그래머스_Kotlin] 피보나치 수

프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 피

rlawog.tistory.com

 

 

 

Android


animation

overridePendingTransition(R.anim.none, R.anim.horizon_exit)
overridePendingTransition(새로 나타나는 화면, 지금 화면)

 

overridePendingTransition을 사용하려 했는데 deprecated 되었다고 한다.

지금 만드는 프로젝트의 API가 34인데 34이 이상일 경우에 overrideActivityTransition를 사용해야 된다고 한다.

 

overrideActivityTransition( OVERRIDE_TRANSITION_OPEN/CLOSE, 새로 나타나는 화면, 지금 화면)

OVERRIDE_TRANSITION_CLOSE : 창이 닫혔을 때

OVERRIDE_TRANSITION_OPEN : 창이 열릴 때

 

 

 

사용하려면 xml에 X,Y 값에 대해 설정해줘야 한다.

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
    <translate
        android:duration="500"
        android:fromXDelta="100%"
        android:interpolator="@android:anim/accelerate_decelerate_interpolator"
        android:toXDelta="0%" />
</set>

 

  • duration : 애니메이션 완료에 걸리는 시간 millisecond 단위
  • fromXdelta : x축 애니메이션이 시작하는 위치 0 이면 정위치 -100% 이면 화면 왼쪽 100% 이면 화면 우측에서 시작
  • ( ex. android:fromXDelta="-100%" : 디바이스 스크린 왼쪽부터)
  • interpolator : 설정한 애니메이션이 실행되는 궤적의 프리셋
  • toXDelta : x축 애니메이션이 끝나게 되는 위치 값은 fromXdelta 와 같음

너무 헷갈려서 직접 그려봤다.

반대, 위, 아래는 위에 것만 이해해도 이해가 간다.

 

혹시나해서 예시로 들자면

 

- 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="100%"
        android:interpolator="@android:anim/accelerate_decelerate_interpolator"
        android:toXDelta="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="300"
        android:fromXDelta="0%"
        android:interpolator="@android:anim/accelerate_decelerate_interpolator"
        android:toXDelta="100%" />
</set>

 

- Slide_none

<?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="0%"
        android:toYDelta="0%" />
</set>

 

 

 

이제 사용해보자면

overrideActivityTransition(OVERRIDE_TRANSITION_OPEN,R.anim.slide_right_enter,R.anim.slide_none)

overrideActivityTransition(OVERRIDE_TRANSITION_CLOSE,R.anim.slide_none,R.anim.slide_right_exit)

위에와 같이 사용하면 되는데 enter일 경우 activity가 실행될 때 나오면 되고 close의 경우 finish 뒤쪽으로 써주면 된다.

 

다른 분은 abstract class를 생성해서 상속시켜서 사용하던데 좀 더 이해가 필요하다.

 

 

 

++

finishAffinity()  : 새로운 스택을 만드는 방식이 아니라 기존 스택을 비우는 방법

 

 

 

 

 

 

'Kotlin > TIL' 카테고리의 다른 글

TIL (04.04)  (0) 2024.04.04
TIL (04.03)  (0) 2024.04.03
TIL (04.01)  (0) 2024.04.01
TIL (03.29)  (2) 2024.03.29
TIL (03.28)  (0) 2024.03.28