2012-11-13 91 views
0

我正在開發一個應用程序,我想要一個活動的自定義動畫。更具體地說,我有一個片段和一個活動。當用戶點擊片段中的ListView中的項目時,用戶將被導航到新的活動,其中該活動應該來自底部而不是默認動畫(淡入,我認爲)。我搜索了它,發現了一些解決方案,但其中大多數是從一個活動到另一個活動。因此,他們使用方法:活動的自定義動畫

Intent intent = new Intent(this.getActivity() ,x.class); 
getActivity().startActivity(intent); 
overridePendingTransition(R.anim.slide_in, R.anim.slide_out); 

由於我打電話從片段的第二個活動,Android不支持此方法(overridePendingTransition)。任何人都可以告訴我任何方法來克服這一點?簡而言之,如果用戶從片段導航到第二個活動,則第二個活動應該來自底部而不是普通動畫。

在此先感謝。

回答

0

在活動,這將被稱爲動畫,你應該這樣做:

public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     overridePendingTransition(R.anim.anim_right_to_center, R.anim.anim_hold); 
     setLayoutContent(R.layout.myactivtiy); 
} 

,如果你想出去動畫,你應該這樣做:

@Override 
    public void onPause(){ 
     //todo detach from updater 
     super.onPause(); 
     overridePendingTransition(R.anim.anim_hold, R.anim.anim_center_to_right); 
    } 

其中R.anim.center_to_right:

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

其中R.anim.anim_hold:

<?xml version="1.0" encoding="utf-8"?> 
<translate xmlns:android="http://schemas.android.com/apk/res/android" 
     android:duration="500" 
     android:fromXDelta="0%" 
     android:interpolator="@android:anim/accelerate_interpolator" 
     android:toXDelta="0">