android活动垂直过渡动画

android活动垂直过渡动画,android,android-activity,android-animation,transition,Android,Android Activity,Android Animation,Transition,我不知道这里怎么了。尝试在两个活动之间制作垂直动画。活动1应从可见状态滑至底部。活动2应该从上到下滑动(变得可见) 这就是我想要的 我的代码 overridePendingTransition(R.anim.top_to_visible, R.anim.visible_to_bottom); top_to_visible.xml <translate xmlns:android="http://schemas.android.com/apk/res/android" android:i

我不知道这里怎么了。尝试在两个活动之间制作垂直动画。活动1应从可见状态滑至底部。活动2应该从上到下滑动(变得可见)

这就是我想要的

我的代码

overridePendingTransition(R.anim.top_to_visible, R.anim.visible_to_bottom);
top_to_visible.xml

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

visible_to_bottom.xml

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


这里出了什么问题?

试试看visible\u to\u bottom.xml动画

android:fromYDelta=“0%p”android:toYDelta=“100%p”


删除负号“-100%p”->“100%p”

对于visible\u to\u bottom.xml动画,请尝试此操作

android:fromYDelta=“0%p”android:toYDelta=“100%p”


删除负号“-100%p”->“100%p”

您需要使用
anim
。首先创建两个xml文件并将它们放入
res/anim

top_to_visible.xml

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

visible_to_bottom.xml

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

您需要使用
anim
。首先创建两个xml文件并将它们放入
res/anim

top_to_visible.xml

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

visible_to_bottom.xml

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

您是否认为y轴原点位于底部?因为当我修改from/to值时,我得到了你想要的。y的0%位于顶部。0/0点位于左上角。因此,基于此,您需要将“到底部”从0%移动到100%,将“从顶部到可见”从-100%移动到0%

top_to_visible.xml

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

并且在底部可见

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

您是否认为y轴原点位于底部?因为当我修改from/to值时,我得到了你想要的。y的0%位于顶部。0/0点位于左上角。因此,基于此,您需要将“到底部”从0%移动到100%,将“从顶部到可见”从-100%移动到0%

top_to_visible.xml

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

并且在底部可见

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


你想说什么就说什么,但你没有说你得到了什么:)我得到的是活动一上移+活动二上移(我想要相反的结果,颠倒数字并不能解决问题)你说了你想要的,但你没有说你得到了什么:)我得到的是活动一上移+活动二上移(我想要相反的结果,颠倒数字并不能解决问题)太好了!是的,我对XY坐标的理解是完全错误的:(谢谢!是的,我对XY坐标的理解是完全错误的:(谢谢