본문 바로가기

안드로이드/Android Studio

[ Android / Design ] 화면 전환 애니메이션( 상하좌우)

다들 앱 개발하시면서 화면 전환할 때 슬라이드 형식으로 나타내고 싶을 때가 있으실텐데여

 

그런 분들을 위해 화면 전환 효과를 아주~~ 쉽게 적용하는 법과 살짝의 팁(?)을 드리려고 합니다.

 

Android Resource Directory를 클릭하고 Resource type을 anim으로 설정한 후 디렉토리를 만들어줍니다.

 

생성된 anim 폴더에서 Animation Resource File을 생성해줍니다. (Resource type: set)

 

그 후 다음과 같은 코드를 넣어주시면 됩니다!

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

위 예시는 250ms의 속도로 화면을 중앙에서 아래로 넘어가는 애니메이션이에요 !

보통 값을 각각 100% 0% -100%를 사용합니다.

좌우로 슬라이드를 하고 싶으시면 X의 값을 조절하면 되겠죠??

 

그리고 코드로 이 애니메이션을 적용해볼게요.

 // MainActivity
 fun startSignUpActivity(){
        this.isMember = false
        startActivity(Intent(this,SignUpActivity::class.java))
        overridePendingTransition(R.anim.none, R.anim.nonetoright)

    }

overridePendingTransition(R.anim.none, R.anim.nonetoright) 부분이 애니메이션을 실행시키는 부분이에요

인텐트로 SignUpActivity로 전환을 시키고 그에 대한 애니메이션을 실행시키는 것이죠

 

여기서 잠깐의 팁(?)은 intent 실행코드 밑에 overridePendingTransition 코드를 작성해주셔야 좀 더 부드럽게 앱을 개발하실 수 있습니다.

 

class SignUpActivity : AppCompatActivity() {
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_signup)
        overridePendingTransition(R.anim.lefttonone, R.anim.none)
    }
   }

그렇게 전환된 SignUpActivity에서는 onCreate부분에 넣어주시면 됩니다.

 

 

반응형