2013-05-20 41 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