보통 안드로이드 기기에서 startActivity로 액티비티가 시작되는 경우 오른쪽에서 왼쪽으로 새 액티비티가 나타난다.
그리고 back을 눌러 뒤로 가는 경우 왼쪽에서 오른쪽으로 이전 액티비티가 나타난다.

근데 이건 말그대로 보통의 경우다.(삼성 씨리즈는 보통 이렇더라)

근데.. 옵티머스원을 비롯 몇몇 폰은 화면 전환시 애니메이션이 없다 (이게 기기에 디펜던트 한건지는 정확히 모르겠지만 지금 가진 기기들을 보면 그렇다 -.-;;)

따라서 액티비티 전환시 필요한 전환 효과를 직접 구현해야 할 필요가 있다.

길게 쓰는건 귀찮고.. 그냥 투명도 조절과, 좌/우 에서 나타나는 것 예제만 써보겠다.

우선 anim의 형태를 정의해야 하는데 이는 xml로 하는게 편하다.
res 폴더에 anim이라는 새 폴더를 만들고

leftin.xml
leftout.xml
이라고 만든다.
각각의 내용은 다음과 같다

<!-- leftin.xml --!>
<set xmlns:android="http://schemas.android.com/apk/res/android">
 <translate android:fromXDelta="100%p" android:toXDelta="0" android:duration="300"/>
 <alpha android:fromAlpha="0.0" android:toAlpha="1.0" android:duration="300" />
</set>

<!-- leftout.xml --!>
<set xmlns:android="http://schemas.android.com/apk/res/android">
 <translate android:fromXDelta="0" android:toXDelta="-100%p" android:duration="300"/>
 <alpha android:fromAlpha="1.0" android:toAlpha="0.0" android:duration="300" />
</set>

뭐 설명은 크게 필요 없으리라 본다..
translate는 말그대로 이동 시키는 것이다. fromXDelta로 부터 toXDelta까지..
leftin.xml은 '다음에 나타날 화면'이 어떻게 나타나는가.. 그리고 leftout.xml은 '나는 어떻게 사라지는가' 에 대해서 적어놨다.

이들을 적용 시키기 위해선 startActivity나 finish이후에 다음과 같이 적어준다.

overridePendingTransition(R.anim.leftin, R.anim.leftout);

위의 모든 소스를 적용 시키면 액티비티가 오른쪽에서 왼쪽으로 나타난다.
그 반대는 스스로 해보길~
저작자 표시 비영리 변경 금지
신고
블로그 이미지

roter

JHB / Peripheral Programmer

Tag , ,

댓글을 달아 주세요