【问题标题】:Activity Transition Animations in AndroidAndroid 中的 Activity 过渡动画
【发布时间】:2012-09-04 09:42:35
【问题描述】:

我想像 HTC 手机那样应用一个 Activity 过渡:当你开始一个新的 Activity 时,有一个从右到左的滑动,但是当你按下返回按钮返回上一个 Activity 时,有一个从左到右的滑动动画。

我在我的活动的onResume 中使用overridePendingTransition 来模拟从右到左的滑动动画,但是当我按下后退按钮时,执行了相同的动画,这是错误的(从结果的角度来看)。

因此,我想问一下如何为一个 Activity 设置不同的动画,一种用于创建时的动画,一种用于用户按下返回键时的动画。

非常感谢!

【问题讨论】:

    标签: android android-animation android-lifecycle


    【解决方案1】:

    要在用户按下后退按钮时定义动画,您必须在 Activity 中覆盖 onBackPressed() 并在其中使用 overridePendingTransition():

    public void onBackPressed() {
        super.onBackPressed();
        overridePendingTransition(R.anim.in_from_left, R.anim.out_to_right);
    }
    

    所以这个动画只会在按下后退按钮时显示。

    要在新 Activity 打开时设置动画,您只需在调用 startActivity() 或类似名称后定义动画:

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

    【讨论】:

    • 谢谢,我会检查并告诉你:)
    • anim 在overridePendingTransition 方法中是什么。是我们想要动画的视图吗?
    • @I-droid 不,是动画资源developer.android.com/guide/topics/resources/…
    • 但是当我使用此代码时,我收到“多个标记在同一行”错误。你能解释一下为什么吗?以及如何摆脱它?
    【解决方案2】:

    你在 android 活动 overridePendingTransition 中使用了默认动画

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

    【讨论】:

      猜你喜欢
      • 2013-02-11
      • 1970-01-01
      • 1970-01-01
      • 2016-06-05
      • 1970-01-01
      • 2018-07-10
      • 2017-02-10
      • 2015-03-29
      • 1970-01-01
      相关资源
      最近更新 更多