M.E*_*.ES 3 java android android-animation android-layout android-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);
Run Code Online (Sandbox Code Playgroud)
我的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>
Run Code Online (Sandbox Code Playgroud)
我的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>
Run Code Online (Sandbox Code Playgroud)
问题是只出现进入转换而没有出现退出转换。我试图为退出转换添加延迟,但它也不起作用。
但是,当我将代码更改为仅对应用程序退出进行动画处理时。有效。
finish();
overridePendingTransition(0, R.anim.scale_to_center);
Run Code Online (Sandbox Code Playgroud)
谢谢。
设置方法的两个动画overridePendingTransition和通话结束后,你叫startActivity:
Intent intent = new Intent(SettingsActivity.this, SettingsActivity.class);
startActivity(intent);
overridePendingTransition(R.anim.scale_from_center, R.anim.scale_to_center);
finish();
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
7254 次 |
| 最近记录: |