2013-05-20 44 views
28

我正面臨一個問題。以左至右模式啓動活動

我有三個活動,我需要開始與左側幻燈片的新活動。

Activity1 

Activity2 

Activity3 

意味着enter image description here

當我點擊按鈕,新的活動不應直接像什麼機器人的行爲顯示。

我希望新的活動來自右側並顯示在當前屏幕上。

任何人都可以提供給我指導。 這是動畫或其他任何東西。

+0

開始活動,然後只是應用過渡效果。檢查此http://www.mindfiresolutions.com/Animation-on-Switching-between-activities-1392.php而且這也是:http://www.christianpeeters.com/android-tutorials/tutorial-activity-slide-animation /#more-483 –

+0

感謝manish請把這個在正確的答案,所以我可以標記爲接受 – Unknown

+0

http://stackoverflow.com/a/6056067/1168654 –

回答

17

開始活動,然後只是應用過渡效果。 欲瞭解更多信息,如何繼續爲此訪問here和源代碼示例訪問this。對於任何查詢,請隨時發表評論。

+0

有一件事我需要同時開始其他活動..喜歡點擊A活動我需要顯示B,C順序。我該怎麼做 – Unknown

+0

你不能沒有任何意圖的B活動。有一件事,你可以只是在活動B的onCreate()中的startActivity(C活動)。 –

+0

其直接顯示行爲C. – Unknown

3

在啓動SecondActivity之前調用overridePendingTransition。它需要兩個參數int enterAnim, exitAnim

  • enterAnim是用於傳入活動的動畫資源的資源ID。使用0表示沒有動畫
  • exitAnim是用於傳出活動的動畫資源的資源ID。沒有動畫使用0。
97

我會盡力幫助你用下面的例子:

RES /動畫/ trans_left_in.xml

<?xml version="1.0" encoding="utf-8"?> 
<set xmlns:android="http://schemas.android.com/apk/res/android"> 
<translate 
     android:fromXDelta="100%p" 
     android:toXDelta="0" 
     android:duration="@android:integer/config_longAnimTime"/> 
</set> 

RES /動畫/ trans_left_out.xml

<?xml version="1.0" encoding="utf-8"?> 
<set xmlns:android="http://schemas.android.com/apk/res/android"> 
    <translate 
     android:fromXDelta="0" 
     android:toXDelta="-100%p" 
     android:duration="@android:integer/config_longAnimTime"/> 
</set> 

res/anim/trans_right_in.xml

<?xml version="1.0" encoding="utf-8"?> 
<set xmlns:android="http://schemas.android.com/apk/res/android"> 

    <translate 
     android:fromXDelta="-100%p" 
     android:toXDelta="0" 
     android:duration="@android:integer/config_longAnimTime"/> 
</set> 

RES /動畫/ trans_right_out.xml

<?xml version="1.0" encoding="utf-8"?> 
<set xmlns:android="http://schemas.android.com/apk/res/android"> 
    <translate 
     android:fromXDelta="0" 
     android:toXDelta="100%p" 
     android:duration="@android:integer/config_longAnimTime"/> 
</set> 

的src /活性2

@Override 
public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_traces); 
     overridePendingTransition(R.anim.trans_left_in, R.anim.trans_left_out); 
...} 

@Override 
public void onBackPressed() { 
    super.onBackPressed(); 
    overridePendingTransition(R.anim.trans_right_in, R.anim.trans_right_out); 
} 
+0

最佳答案+1謝謝 – Abhishek

+0

最簡單!注意:在overridePendingAnimation之前調用'super.onBackPressed();'否則它將不起作用 – WuerfelDev

+0

我一直在尋找這個很長一段時間:)! 從Activity1過渡到Activity2 [left => right |左= <=右] – ivanleoncz

5

這,

Intent intent=new Intent(Activity1.this,Activity2.class); 
startActivityForResult(intent,0); 
getActivity().overridePendingTransition(R.anim.righttoleft, R.anim.stable); 

這裏是動畫righttoleft.xml,

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

    <translate 
      android:duration="500" 
      android:fromXDelta="-100%" 
      android:fromYDelta="0%" 
      android:toXDelta="0%" 
      android:toYDelta="0%" /> 
</set> 

和stable.xml

<?xml version="1.0" encoding="UTF-8"?> 
<set xmlns:android="http://schemas.android.com/apk/res/android"> 
    <alpha android:fromAlpha="1.0" android:toAlpha="1.0" 
     android:interpolator="@android:anim/accelerate_interpolator" 
     android:duration="500" 
     android:repeatCount="0"/> 
</set> 
+0

''標籤在第一個代碼中缺失 – dmSherazi

10

更好的方法是如下創建一個樣式:

<style name="mytheme" parent="@android:style/Theme.Black"> 
    <item name="android:windowAnimationStyle">@style/theme</item> 
</style> 

<style name="theme"> 
    <item name="android:windowEnterAnimation">@anim/fade_in</item> 
    <item name="android:windowExitAnimation">@anim/fade_out</item> 
</style> 

然後,使用Android的這種風格應用到你的活動清單文件:主題標籤。

+0

從學習的角度來看這很有幫助。但實際上,我需要在倒退時倒轉動畫,這是不行的。 – chris838