gpt4 book ai didi

Android ICS Activity 从淡入/淡出到幻灯片的转换

转载 作者:塔克拉玛干 更新时间:2023-11-02 22:10:06 24 4
gpt4 key购买 nike

我有一个应用程序,我在其中对标准 Activity 使用默认的滑入/滑出效果,并对一些特定 Activity 使用淡入/淡出效果。

我注意到新的 Android 4.X (ICS) 有一个不同的默认值,它完全是淡入/淡出。

如何在我的标准 Activity 中定义滑入/滑出效果?

我一直在尝试定义它:

@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但现在已经提供了答案。

最佳答案

overridePendingTransition() 必须在启动新 Activity 后立即调用,因此您可以在 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);
}



}

然后,只需在您的 Activity 中扩展 MyActivity 而不是 Activity,默认情况下过渡都应该是滑动的。

关于Android ICS Activity 从淡入/淡出到幻灯片的转换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10108192/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com