2012-02-07 5 views
2

한 액티비티에서 두 개의 Activities 사이에 맞춤 전환을하려고합니다. 현재 Activity을 약 절반 크기로 줄이기 위해 x 값에 축척 변환을 수행하여 Activity이 3-D로 회전하는 것처럼 보입니다. 그런 다음 해당 애니메이션이 끝난 후 똑같은 반대 순서로 동일한 애니메이션을 Activity에 새로 추가하려고합니다.Android 액 션 전환 명령

제 질문은 애니메이션을 끝내기 전까지 Activity을 입력하는 애니메이션이 시작되지 않도록하려면 어떻게해야합니까? overridePendingTransition 메서드를 사용해야하므로 전달 된 모든 애니메이션은 int 값이어야합니다 (R.anim). 그렇지 않으면 AnimationListener을 사용하면 쉽습니다. 그러나 나는 그것을 할 수있는 방법을 생각할 수 없다.

아이디어가 있으십니까?

편집 : 이후로 알아 냈으므로 답변을 확인할 수 있습니다.

+1

나만의 답변을 찾았으므로 수정 사항을 답변으로 이동 한 다음 동의합니다. 이것은 자신과 지역 사회에 매우 도움이됩니다. :) –

답변

4

동일한 것을 달성하고자하는 사람은 누구나 알아 냈습니다. 비밀은 XML에서 android : startOffset을 사용하는 것입니다.

출구 애니메이션 :

<set xmlns:android="http://schemas.android.com/apk/res/android"> 
    <scale 
     android:fromXScale="1.0" android:toXScale="0.8" 
     android:fromYScale="1.0" android:toYScale="0.8" 
     android:pivotX="50%p" android:pivotY="50%p" 
     android:interpolator="@android:anim/accelerate_interpolator" 
     android:duration="100" /> 
    <scale 
     android:fromXScale="1.0" android:toXScale="0.0" 
     android:fromYScale="1.0" android:toYScale="1.0" 
     android:pivotX="50%p" android:pivotY="50%p" 
     android:interpolator="@android:anim/accelerate_interpolator" 
     android:duration="150" 
     android:startOffset="100" /> 
</set> 

입구 애니메이션 : 그럼

<set xmlns:android="http://schemas.android.com/apk/res/android"> 
    <scale 
     android:fromXScale="0.0" android:toXScale="1.0" 
     android:fromYScale="1.0" android:toYScale="1.0" 
     android:pivotX="50%p" android:pivotY="50%p" 
     android:interpolator="@android:anim/accelerate_interpolator" 
     android:duration="150" 
     android:startOffset="250" /> 

    <scale 
     android:fromXScale="0.8" android:toXScale="1.0" 
     android:fromYScale="0.8" android:toYScale="1.0" 
     android:pivotX="50%p" android:pivotY="50%p" 
     android:interpolator="@android:anim/accelerate_interpolator" 
     android:duration="100" 
     android:startOffset="400" /> 
</set> 

자바 코드 :

startActivity(new Intent(this, YourNextActivity.class)); 
overridePendingTransition(R.anim.enter_anim, R.anim.exit_anim); 

이 부드러운을 만들고, 잘 코드는 다음과 생성 된 다음 액티비티가 현재 액티비티의 "뒤로"에있는 것처럼 보이게하는 -timed 애니메이션.