java - overridePendingTransition 仅显示进入动画

标签 java android android-layout android-activity android-animation

当用户更改语言环境时,我想使用新的语言环境重新加载 Activity 。我想在完成 Activity 并再次启动它时创建一个动画过渡。

过渡动画如下:

退出动画是将Activity缩放到屏幕中央。 进入动画是从屏幕中心缩放 Activity 。

finish();
overridePendingTransition(0, R.anim.scale_to_center);
Intent intent =new Intent(SettingsActivity.this, SettingsActivity.class);
startActivity(intent);
overridePendingTransition(R.anim.scale_from_center, 0);

我的 scale_to_center.xml 是:

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
    <scale android:fromYScale="1.0" android:toYScale="0"
        android:fromXScale="1.0" android:toXScale="0" 
        android:pivotX="50%" android:pivotY="50%"
        android:duration="500"/>
</set>

我的 scale_from_center.xml 是:

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
    <scale android:fromYScale="0" android:toYScale="1.0"
        android:fromXScale="0" android:toXScale="1.0" 
        android:pivotX="50%" android:pivotY="50%"
        android:startOffset="500"
        android:duration="2000"/>
</set>

问题是只有进入转换出现而退出转换没有出现。我试图为退出过渡添加延迟,但它也没有用。

但是,当我将代码更改为仅对应用程序的退出进行动画处理时。它奏效了。

finish();
overridePendingTransition(0, R.anim.scale_to_center);

谢谢。

最佳答案

overridePendingTransition 方法上设置两个动画,并在 调用 startActivity 后调用 finish:

Intent intent = new Intent(SettingsActivity.this, SettingsActivity.class);
startActivity(intent);
overridePendingTransition(R.anim.scale_from_center, R.anim.scale_to_center);
finish();

关于java - overridePendingTransition 仅显示进入动画,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11284238/

相关文章:

java - ServiceLoader 双迭代器问题

java - javax.persistence.SequenceGenerator和分配大小

java - 使用 Java 的 Selenium WebDriver 测试中的 waitForVisible/waitForElementPresent 的等价物?

android - 如何在Android中运行Conv3D模型?

android - 分隔线未显示在回收站 View 项目中

android - 以编程方式更改布局的背景颜色

android - 在距底部 30% 的位置创建相对布局

java - Spark sql 连接 mongo-spark 和 Spark-redshift 连接器的性能问题

android - 弹出窗口未在 android L 中正确显示

java - Android Media Player SeekBar 不通过歌曲文件寻找