【发布时间】:2012-07-02 07:27:02
【问题描述】:
当用户更改语言区域设置时,我想使用新的区域设置重新加载活动。我想在完成 Activity 并再次启动它时创建一个动画过渡。
转场动画如下:
退出动画是将活动缩放到屏幕中心。 enter 动画是从屏幕中心缩放 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);
谢谢。
【问题讨论】:
-
<item name="android:windowIsTranslucent">false</item>解决我的问题,也许你可以试试。
标签: java android android-layout android-activity android-animation