android - 如何使用意图通过后退键动画进入活动?
问题描述
众所周知,默认情况下,当使用 Intent 从一个 Activity 移动到另一个 Activity 时,第二个 Activity 似乎从右向左滑入,而当按下返回按钮时,第一个 Activity 似乎从左向右滑入。我想使用意图从一个活动转到另一个活动,以便第二个活动看起来从左到右滑入。换句话说,我希望过渡看起来好像用户正在按下后退按钮。
我检查了这一点,但只有将动画应用于整个活动的说明,而不是使用意图从活动转换到另一个的说明。这是一个很好的例子,但我不知道 android 用于其活动转换的默认持续时间(当使用意图进入另一个活动时,以及返回时),我不希望我的转换动画看起来/感觉不同于默认的android过渡动画。
有谁知道我如何可以简单地将后退按键动画应用到使用意图的活动转换?如果没有,是否有人知道 android 用于其默认活动转换的默认持续时间?
更新:我能够使用 获得幻灯片动画getWindow().setExitTransition(new Slide(Gravity.END))
,但过渡看起来与 android 的默认后退键动画不完全相同。
解决方案
我最终试图通过反复试验(二分搜索)找出持续时间。我按照本教程(我在问题中链接到)。在此期间,我得出的值为 233。
一步步:
在 res 目录中创建一个 anim 文件夹。在该文件夹中创建两个文件:
slide_from_left.xml:
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
<translate
android:fromXDelta="-100%p"
android:toXDelta="0"
android:interpolator="@android:anim/accelerate_decelerate_interpolator"
android:duration="233" />
</set>
slide_to_right.xml:
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
<translate
android:fromXDelta="0"
android:toXDelta="100%p"
android:interpolator="@android:anim/accelerate_decelerate_interpolator"
android:duration="233" />
</set>
在调用启动活动之后,调用 overridePendingTransition(),如下所示:
startActivity(backIntent);
overridePendingTransition(R.anim.slide_from_left, R.anim.slide_to_right);
推荐阅读
- mysql - 如何为多个 Inner Join 编写 SQL 查询?
- scala - Circe:返回密封特征 (ADT) 的特定对象的通用函数
- jquery - 如何将 Fomantic-UI 导入 Angular 项目
- python - 将 Spacy 训练数据格式转换为 Spacy CLI 格式(用于空白 NER)
- c++ - 如何为文本 rpg 库存创建添加项目功能?
- c# - 带有动画 xamarin 表单的 ScrollView
- python - 用机会滚动轮盘赌并计算多次滚动的最大同侧序列
- php - 使用 html 按钮运行 shell 脚本
- sql - 如何将 nvarchar 转换为 uniqueidentifer?
- snowflake-cloud-data-platform - 无法使用 snowsql 连接到雪花数据库