从底部到顶部显示活动

50

我想使用 Intent 实现从下到上的动画,在一个Activity中显示另一个Activity

请给我提供以下示例:

Intent i2 = new Intent(main.this, test.class);
startActivity(i2);

带有从底部到顶部的动画效果。


3
不给该内容点踩,但“页面”在安卓中被称为“Activity”。 - Mudassir
看,这里有很多关于SO的帖子。http://stackoverflow.com/search?q=using+animation+in+Android - Mudassir
3个回答

153

在res/anim/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"/>

还有一个在res/anim/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"/>

然后在调用 startActivity 之后应用这些内容:

Intent i2 = new Intent(main.this, test.class);
startActivity(i2);
overridePendingTransition( R.anim.slide_in_up, R.anim.slide_out_up );

这里有一篇介绍Android动画的文章(链接在此),这可能会更有帮助。


链接已失效。 - Shubham AgaRwal
该网站有两个系列的关于过渡动画的文章: https://blog.stylingandroid.com/transition-animation-part-1/ 和 https://blog.stylingandroid.com/manual-layout-transitions-part-1/ - Gregor Koukkoullis
1
这太棒了。您能告诉我如果我点击返回按钮,那么活动会从底部返回吗? - Ali

11

我谷歌搜索了一下"向上滑动转换",最终来到了这里。但是马克的答案如果没有包含返回到同一个活动中的转换,则不完整。

重写(override)活动中的finish()方法。

@Override
public void finish() {
    super.finish();
    overridePendingTransition(R.anim.slide_from_top,R.anim.slide_in_top);
}

完成()

 if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
                finishAfterTransition();
            }else finish();

slide_from_top.xml

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

slide_in_top.xml

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

0

首先:为您的Activity 1设计动画布局, 其次:在此动画结束时,启动第二个Activity,并为其内容布局添加动画效果。

使用TranslateAnimation(int fromX,int toX, int fromY , int toY)方法实现。


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