2012-11-27 76 views
1

我使用Apis的幻燈片來滑動和滑出兩個活動。但是當我從一個活動跳到另一個活動時,出現一個黑屏。在android中使用動畫的兩個活動之間的黑色屏幕

滑左

<set xmlns:android="http://schemas.android.com/apk/res/android" 
    android:interpolator="@android:anim/accelerate_interpolator" > 

    <translate 
     android:duration="300" 
     android:fromXDelta="100%p" 
     android:toXDelta="0" /> 

</set> 

滑右對齊

<set xmlns:android="http://schemas.android.com/apk/res/android" 
    android:interpolator="@android:anim/accelerate_interpolator" > 

    <translate 
     android:duration="300" 
     android:fromXDelta="-100%p" 
     android:toXDelta="0" /> 

</set> 

跳從一個活動到另一: -

Button button1 = (Button) findViewById(R.id.Button01); 
     button1.setOnClickListener(new View.OnClickListener() { 
      public void onClick(View view) { 
       startActivity(new Intent(getApplicationContext(), SecondView.class)); 
       overridePendingTransition(R.anim.slide_left, R.anim.slide_right); 

});

爲什麼這個黑屏出現在兩個活動之間。

回答

6

你的第一個XML應該是這樣的:

<set xmlns:android="http://schemas.android.com/apk/res/android" 
android:interpolator="@android:anim/accelerate_interpolator" > 

<translate 
    android:duration="300" 
    android:fromXDelta="0" 
    android:toXDelta="100%p" /> 

</set> 

fromXDelta是在動畫開始時應用的水平轉換。將它設置爲「100%p」會使動畫開始時第一個活動剛剛移出屏幕,因此出現空白屏幕。

到函數overridePendingTransition(int, int)呼叫應該是這樣的:

overridePendingTransition(R.anim.slide_right, R.anim.slide_left); 

的第一個參數確定由第二活動使用的過渡的動畫。另外,這兩個動畫可以更正確地命名爲slide_out_to_right和slide_in_from_left,因爲實際上它們都向右滑動。

+0

適用於我的工作正常..不能投票你的答案因爲聲譽較低....我的其他代碼應該從右側移動動畫。下面的代碼再次離開黑屏。 <翻譯 android:duration =「300」 android:fromXDelta =「0」 android:toXDelta =「 - 100%p」/> – John

+0

我編輯了我的答案,現在應該沒問題。 – topduo

+0

是啊,非常感謝......按要求工作.. – John