我有一个应用程序,我在标准活动中使用默认的幻灯片输入/输出效果,并在一些特定活动中淡入/淡出。
我注意到新的Android 4.X(ICS)有一个不同的默认值,它正是淡入/淡出。
如何在我的标准活动中定义我的幻灯片输入/输出效果?
我一直试图用以下方式定义它:
@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);
}
重现我正在使用的淡入/淡出效果:
@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);
}
但尚未成功复制它。
另外,我在onCreate和onPause上使用此代码,这是正确的吗?还是有更好的地方可以提出来吗?
由于
PS:我见过这个New Android 4.0 Screen Transitions Between Activities,但现在已经提供了答案。
答案 0 :(得分:10)
overridePendingTransition(),因此您可以在startActivity(intent)之后调用它。 要创建默认值,您可以创建一个扩展Activity并覆盖startActivity,onBackPressed()等的类来覆盖转换。例如:
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);
}
}
然后,只需在活动中扩展MyActivity而不是Activity,默认情况下转换都应该滑动。