安卓中的活动转场动画

4
我想应用类似于HTC手机的活动转换:当你启动一个新的活动时,会出现从右到左的幻灯片效果,但是当你按下返回按钮返回到上一个活动时,会出现从左到右的幻灯片效果。
我已经在我的活动的onResume中使用了overridePendingTransition来模拟从右到左的幻灯片效果,但是当我按下返回按钮时,执行的依然是相同的动画效果,这是错误的(从结果方面看)。
因此,我想问一下如何管理活动的不同动画效果,一个是在创建时,一个是在用户按下返回键时。
非常感谢!
2个回答

8
为了在用户按下后退按钮时定义一个动画,您需要在Activity中覆盖onBackPressed()并在其中使用overridePendingTransition()
public void onBackPressed() {
    super.onBackPressed();
    overridePendingTransition(R.anim.in_from_left, R.anim.out_to_right);
}

当用户按下返回按钮时,此动画将仅显示一次。

要在打开新活动时设置动画,您只需在调用 startActivity() 或类似方法后定义动画即可:

startActivity(some_intent);
overridePendingTransition(R.anim.in_from_right, R.anim.out_to_left);

谢谢,我会查看并告诉你 :) - Dimitris Makris
overridePendingTransition 方法中的 anim 是什么?它是我们想要动画化的视图吗? - uniruddh
@I-droid 不是的,这是动画资源 http://developer.android.com/guide/topics/resources/animation-resource.html#View - Floern
但是当我使用这段代码时,我会收到“同一行上有多个标记”的错误。你能解释一下为什么吗?以及如何避免这种情况? - uniruddh

0

在Android活动中,你可以使用默认的动画效果overridePendingTransition

startActivity(new Intent(getApplicationContext(),Login.class));
overridePendingTransition(android.R.anim.fade_in,android.R.anim.fade_out);

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接