gpt4 book ai didi

android - 使 Activity 从上到下动画

转载 作者:IT老高 更新时间:2023-10-28 22:04:13 25 4
gpt4 key购买 nike

我正在编写一个 Android 应用程序,我希望通过从屏幕底部到顶部的动画来显示 Activity 。我可以用这里的代码做到这一点:

但是,我无法制作反之亦然的动画,其中 Activity 会通过从屏幕顶部滑动到底部而消失。

我使用了上面链接中的代码; Activity 通过向上滑动出现,但在消失时,它会淡出,而不是滑到底部。

我什至尝试将代码放入 onCreate() :

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
this.requestWindowFeature(Window.FEATURE_NO_TITLE);
overridePendingTransition(R.anim.appear_from_bottom, R.anim.disappear_to_bottom);
setContentView(R.layout.activity_all_metadata_display);
initializePage();
}

最佳答案

您需要从链接的问题中定义“向上滑动”动画,以及一些新的“向下滑动”动画来逆转该过程。

要查看的动画的重要部分是 fromYDeltatoYDelta 值。这些定义了动画开始和结束时的 Y 位置( View 顶部)。

slide_in_up.xml

<?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%p" />

slide_out_up.xml

<?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" />

slide_in_down.xml

<?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%p" />

slide_out_down.xml

<?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" />

对于“向上滑动”动画,您应该在 onResume() 方法中覆盖待处理的过渡,如下所示:

protected void onResume()
{
super.onResume();
overridePendingTransition(R.anim.slide_in_up, R.anim.slide_out_up);
}

对于“向下滑动”动画,在您的 onPause() 方法中执行类似的操作:

protected void onPause()
{
super.onPause();
overridePendingTransition(R.anim.slide_in_down, R.anim.slide_out_down);
}

一些教程建议使用错误的生命周期方法:

  • onCreate() 不会在每次显示 Activity 时调用
  • onDestroy() 不是每次取走activity时都调用

而是使用每次屏幕转换时调用的方法:

  • onResume() 在向用户显示 Activity 时调用
  • onPause() 在 Activity 将要被带走时调用

有关这些方法的详细信息,请查看 Android 开发者网站:


当你的屏幕显示时,它会从底部滑入。

当显示新屏幕时,您的屏幕会向下滑动。

关于android - 使 Activity 从上到下动画,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23578059/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com