简体   繁体   English

Android ICS活动从淡入/淡出过渡到幻灯片

[英]Android ICS Activity Transition from Fade In/Out Back to Slide

I have an app where I used default slide in/out effects on standards activities and fade in/out on a few specific activities. 我有一个应用程序,我在标准活动中使用默认的幻灯片输入/输出效果,并在一些特定的活动上淡入/淡出。

I've noticed that the new Android 4.X (ICS) has a different default, which is exactly fade in/out. 我注意到新的Android 4.X(ICS)有一个不同的默认值,它正是淡入/淡出。

How can i define on my standard activities my slide in/out effect? 如何在我的标准活动中定义我的幻灯片输入/输出效果?

I've been trying to define it with: 我一直试图用以下方法来定义它:

@Override
public void onCreate(Bundle savedInstanceState)
{
    this.overridePendingTransition(0, android.R.anim.slide_in_left);                  
    super.onCreate(savedInstanceState);
}

@Override
public void onPause()
{
    super.onPause();
    overridePendingTransition(android.R.anim.slide_out_right, 0);
}

To reproduce the fade in / out effect i'm using: 要重现我正在使用的淡入/淡出效果:

@Override
public void onCreate(Bundle savedInstanceState)
{
    this.overridePendingTransition(0, android.R.anim.fade_in);                  
    super.onCreate(savedInstanceState);
}

@Override
public void onPause()
{
    super.onPause();
    overridePendingTransition(android.R.anim.fade_in, 0);
}

but haven't managed to successfully reproduce it. 但还没有成功地重现它。

Also, I'm using this code on onCreate and onPause, is this correct? 另外,我在onCreate和onPause上使用此代码,这是正确的吗? Or is there a better place to put it? 还是有更好的地方可以把它?

Thanks 谢谢

PS: I've seen this New Android 4.0 Screen Transitions Between Activities but now answer has been provided. PS:我在活动之间看到了这个新的Android 4.0屏幕转换,但现在已经提供了答案。

overridePendingTransition() has to be called immediately after starting the new activity, so you would call it after startActivity(intent), for example. 必须在启动新活动后立即调用overridePendingTransition(),因此您可以在startActivity(intent)之后调用它。 To make a default you can create a class that extends Activity and override startActivity, onBackPressed(), etc. to override the transition. 要创建默认值,您可以创建一个扩展Activity并覆盖startActivity,onBackPressed()等的类来覆盖转换。 For example: 例如:

public class MyActivity extends Activity {

@Override
public void onBackPressed() {
    super.onBackPressed();
    overridePendingTransition(R.anim.slide_in_transition,R.anim.slide_out_transition);
}

@Override
public void startActivity(Intent intent) {
    super.startActivity(intent);
    overridePendingTransition(R.anim.slide_in_transition,R.anim.slide_out_transition);
}

@Override
public void finish() {
    super.finish();
    overridePendingTransition(R.anim.slide_in_transition,R.anim.slide_out_transition);
}



}

Then, just extend MyActivity instead of Activity in your activities and the transitions should all be sliding by default. 然后,只需在活动中扩展MyActivity而不是Activity,默认情况下转换都应该滑动。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM