如何从下到上动画第二个Activity?

时间:2017-06-05 10:48:39

标签: java android android-animation android-transitions

我在第一个活动上有一个点击按钮,当我们点击那个按钮然后我想要动画第二个活动但在我的情况下我的第一个活动也动画了第二个活动 这是代码

 Intent createCompaignActivityIntent = new Intent(mActivity, CreateCompaignActivity.class);
 mActivity.startActivity(createCompaignActivityIntent);
 mActivity.overridePendingTransition( R.anim.slide_in_up, R.anim.slide_out_up );

slide_in_up.xml

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

slide_out_up.xml

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

1 个答案:

答案 0 :(得分:1)

如果您不想为第一个活动设置动画,请在slide_out_up.xml中将android:toYDelta="-100%p"更改为android:toYDelta="0%p"

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

修改

要在退出第二个活动时实现向下滑动,请创建一个动画文件并复制到代码

下面

slide_out_down.xml

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

并在您的第二个活动onBackPressed()中添加以下代码。

@Override
public void onBackPressed() {
    super.onBackPressed();
    overridePendingTransition(R.anim.slide_out_up, R.anim.slide_out_down);
}