🚧

[Android Studio] ν™”λ©΄ λ„˜μ–΄κ°ˆ λ•Œ, μ•‘ν‹°λΉ„ν‹° 이동 μ‹œ μ• λ‹ˆλ©”μ΄μ…˜ λ„£κΈ°

purpplee 2021. 6. 6. 20:00

화면이 λ„˜μ–΄κ°ˆ λ•Œ μœ„λ‘œ 휘리릭 μ΄λ™ν•˜κ³  μ˜†μœΌλ‘œ 휘리릭 μ‚¬λΌμ§€λŠ” μ• λ‹ˆλ©”μ΄μ…˜μ„ λ„£μ–΄λ³΄μž.

λ‚˜λŠ” 이전 화면이 νŽ˜μ΄λ“œμ•„μ›ƒλ˜κ³  λ‹€μŒ 화면이 νŽ˜μ΄λ“œμΈλ˜λŠ” μ• λ‹ˆλ©”μ΄μ…˜μ„ λ„£μ–΄λ³Ό 것이닀.

 

1. μ• λ‹ˆλ©”μ΄μ…˜ λ§Œλ“€κΈ°

기본적으둜 μ•ˆλ“œλ‘œμ΄λ“œ μŠ€νŠœλ””μ˜€μ—λŠ” animation 폴더가 μ—†μ–΄ λ§Œλ“€μ–΄μ€˜μ•Ό ν•œλ‹€.

res 에 'anim' ν˜Ήμ€ 'animation' μ΄λΌλŠ” μ΄λ¦„μœΌλ‘œ directory λ₯Ό λ§Œλ“€μž.

이름은 λ°˜λ“œμ‹œ λ‘κ°œ 쀑 ν•˜λ‚˜μ—¬μ•Ό ν•œλ‹€.

 

λ§Œλ“  μ• λ‹ˆλ©”μ΄μ…˜ 폴더에 fade_in.xml, fade_out.xml νŒŒμΌμ„ μΆ”κ°€ν•œλ‹€. μžλ™μœΌλ‘œ μ• λ‹ˆλ©”μ΄μ…˜ 파일 μ˜΅μ…˜μ΄ 생길 것이닀.

μ•„λž˜μ²˜λŸΌ μž…λ ₯ν•˜μž.

<!-- fade_in.xml -->

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
    <alpha
        android:duration="1000"
        android:fromAlpha="0.0"
        android:interpolator="@android:anim/accelerate_interpolator"
        android:toAlpha="1.0"/>
</set>

duration 은 1초 λ™μ•ˆ μ• λ‹ˆλ©”μ΄μ…˜μ„ μ‹€ν–‰ν•˜κ² λ‹€λŠ” 의미고

fromAlpha λŠ” μ‹œμž‘ μ•ŒνŒŒκ°’, toAlpah λŠ” 끝 μ•ŒνŒŒκ°’μ΄λ‹€.

0 ~ 1 만큼 λ³€ν™”ν•˜λ―€λ‘œ μ—†μ—ˆλ‹€κ°€ λ‚˜νƒ€λ‚˜λŠ” νŽ˜μ΄λ“œμΈμ΄ λœλ‹€.

 

<!-- fade_out.xml -->

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
    <alpha
        android:duration="1000"
        android:fromAlpha="1.0"
        android:interpolator="@android:anim/accelerate_interpolator"
        android:toAlpha="0.0"/>
</set>

 

2. μ• λ‹ˆλ©”μ΄μ…˜ μ‹€ν–‰ν•˜κΈ° μžλ°”μ½”λ“œ

μ• λ‹ˆλ©”μ΄μ…˜μ€ ν˜„μž¬ 화면이 사라지고 μƒˆ 화면이 λ‚˜νƒ€λ‚  λ•Œ μ‹€ν–‰ν•  것이닀.

 

ν˜„μž¬ μ• λ‹ˆλ©”μ΄μ…˜μ΄ μ’…λ£Œλ˜κ³  λ‚˜μ„œ μ‹€ν–‰ν•˜κ³  μ‹Άλ‹€λ©΄ ν˜„μž¬ μ•‘ν‹°λΉ„ν‹°μ—μ„œ λ‹€μŒ μ•‘ν‹°λΉ„ν‹°λ‘œ μ΄λ™ν•˜λŠ” ν•¨μˆ˜ 호좜 λ‹€μŒμ— μ•„λž˜λ₯Ό μž…λ ₯ν•œλ‹€.

...

startActivity(intent);
 //λ‹€μŒ 화면에 μ‹€ν–‰ν•  μ• λ‹ˆλ©”μ΄μ…˜, ν˜„μž¬ 화면에 μ‹€ν–‰ν•  μ• λ‹ˆλ©”μ΄μ…˜
overridePendingTransition(R.anim.fade_in, R.anim.fade_out);
finish();

...

overridePendingTransition 이 ν™”λ©΄ 이동 μ‹œ μ‹€ν–‰λ˜λŠ” ν•¨μˆ˜λ‹€.

λ§Œμ•½ λ‹€μŒ 화면이 싀행될 λ•Œ μ‹€ν–‰ν•˜κ³  μ‹Άλ‹€λ©΄ onCreate 에 λ„£μœΌλ©΄ λœλ‹€.

 

λ‚˜λŠ” 이전에 λ§Œλ“€μ—ˆλ˜ μŠ€ν”Œλž˜μ‹œ 화면에 μ μš©ν•΄λ³΄μ•˜λ‹€.

 

μ™„μ„±λœ ν™”λ©΄

 

λ°˜μ‘ν˜•