2013-02-26 3 views
10

내가 얻으려는 것 : 기존 액티비티 에만에 대한 전환 애니메이션을 사용하여 새 액티비티를 시작하십시오.Android 액티비티 전환 애니메이션

새로운 활동이 현재 활동 뒤에있을 현재 활동을 슬라이드하고 싶습니다. R.layout.slide_up

다음
<set xmlns:android="http://schemas.android.com/apk/res/android"> 

    <translate 
     android:duration="1000" 
     android:fromYDelta="0%" 
     android:toYDelta="100%" /> 

</set> 

내가 활동 애니메이션 전환 신청하는 방법 :

overridePendingTransition (0 , R.anim.slide_up); 

I를 여기

슬라이드 업 애니메이션입니다 내가 새 애니메이션에 대한 애니메이션을 원하지 않기 때문에 입력 활동에 0을 사용하고 있습니다. 활동이 아니며 작동하지 않습니다 (애니메이션이 수행되지 않음). 내가 너무 활동을 입력하는 애니메이션을 사용하는 경우에는 같은 (모두 애니메이션이 수행) 작동 :

overridePendingTransition (R.anim.slide_out , R.anim.slide_up); 

R.anim.slide_out :

<set xmlns:android="http://schemas.android.com/apk/res/android"> 

    <translate 
     android:duration="1000" 
     android:fromYDelta="100%" 
     android:toYDelta="0%" /> 

</set> 

모든 아이디어? 는 입주 활동의 맨 위에 렌더링 할 수 있도록 내가 안드로이드 4.1.2 안드로이드 4.0.4

답변

12

일하고

은 종료 애니메이션을 변경합니다.

R.anim.slide_up

<set xmlns:android="http://schemas.android.com/apk/res/android" 
    android:zAdjustment="top"> 

    <translate 
     android:duration="1000" 
     android:fromYDelta="0%" 
     android:toYDelta="100%" /> 

</set> 

그럼 당신은 원래 애니메이션을 설정하기 위해 무엇을하고 있는지 할 수 있습니다.

overridePendingTransition (0 , R.anim.slide_up); 
3

나는 정확히 같은 전환 및 애니메이션이 나를 위해 작동 있습니다

<?xml version="1.0" encoding="utf-8"?> 
<translate xmlns:android="http://schemas.android.com/apk/res/android" 
android:interpolator="@android:anim/accelerate_interpolator" 
android:fromYDelta="0%" android:toYDelta="100%" android:zAdjustment="top" 
android:duration="300" /> 
+1

정확히 동일한 전환이 아니기 때문입니다. zAdjustment = "top"속성 세트를 사용하면 기본적으로 입력 애니메이션이 종료시에 재생되므로 시작 애니메이션이 입력 애니메이션 위에 재생할 수 있습니다. – MCeley

+0

그게 포인트 :) – Zielony

1

이 기본 애니메이션보다 우선합니다 startActivity를

overridePendingTransition(0,0); 

을 아래 라인을 사용하고 어떤 애니메이션을하지 않는다 . 원하는 경우 사용자 정의 애니메이션을 줄 수도 있습니다.

overridePendingTransition(R.anim.animation1,R.anim.animation2); 
0

활동을 시작하려는 의도가있는 곳이면 의도를 수정해야합니다. ActivityOptions options = ActivityOptions.makeSceneTransitionAnimation(AlbumListActivity.this); startActivity(intent, options.toBundle());

당신은 당신이 코드의 다음 두 줄을 넣을 수 있습니다 setupTransitions() 어떤 전용 방법이있는 경우 , 다른 사람은 onCreate()

getWindow().setEnterTransition(new Slide(Gravity.RIGHT).setDuration(800)); 

중력에 넣어 수 있습니다.RIGHT은 다음 활동을 시작하려는 방향을 결정합니다. setDuration() 방법은 선택 사항입니다. 전환을 원활하게하기 위해 사용 했으므로 필요하지 않습니다.

다른 중력 및 setDuration 속성으로 재생하여 더 많은 것을 탐색하십시오.

관련 문제