将动画应用于仅进入活动android

时间:2016-12-22 11:13:37

标签: android android-studio android-activity android-animation

我想将活动更改过渡应用于仅进入活动。假设我正在推动A-> B然后我希望A活动保持不变,B来自Bottom to Top。

我应用了以下代码但未正常工作

 startActivityForResult(intent, SET_FILTER_REQUEST);
                overridePendingTransition(R.anim.translate_in_anim, R.anim.stay_still_anim);

我使用以下xml文件进行动画

stay_still_anim.xml

 <?xml version="1.0" encoding="utf-8"?>
<translate xmlns:android="http://schemas.android.com/apk/res/android"
    android:duration="250"
    android:fromYDelta="0%p"
    android:toYDelta="0%p" />

translate_in_anim.xml

<set xmlns:android="http://schemas.android.com/apk/res/android"
           android:fillAfter="true">
  <translate android:fromYDelta="100"
         android:toYDelta="0%"
         android:duration="1000"/>
</set>

3 个答案:

答案 0 :(得分:3)

所以基本上如果你纠正动画xml文件,它将完美适合你。 首先要注意的是,为两个Xml提供相同的动画持续时间。并将 fromYDelta 值从 100 更正为 100%,如下所示。您可以将其复制并粘贴到您的代码中。

<set xmlns:android="http://schemas.android.com/apk/res/android"
       android:fillAfter="true">
     <translate android:fromYDelta="100%"
     android:toYDelta="0%"
     android:duration="@android:integer/config_longAnimTime"/>
</set>

<translate xmlns:android="http://schemas.android.com/apk/res/android"
    android:duration="@android:integer/config_longAnimTime"
    android:fromYDelta="0%p"
    android:toYDelta="0%p" />

答案 1 :(得分:1)

将R.anim.out保持为空:

<set xmlns:android="http://schemas.android.com/apk/res/android">

</set>

然后:

startActivity(new Intent(Main2Activity.this, MainActivity.class));
overridePendingTransition(R.anim.translate_in_anim, R.anim.out);

将按默认动画完成活动。

答案 2 :(得分:0)

我可以使用

解决这个问题
 overridePendingTransition(R.anim.abc_slide_in_bottom, android.R.anim.fade_out);

abc_slide_in_bottom.xml

    <?xml version="1.0" encoding="utf-8"?>
<translate xmlns:android="http://schemas.android.com/apk/res/android"
           android:interpolator="@android:anim/decelerate_interpolator"
           android:fromYDelta="50%p" android:toYDelta="0"
           android:duration="@android:integer/config_mediumAnimTime"/>