Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/366.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java overridePendingTransition仅显示输入动画_Java_Android_Android Layout_Android Activity_Android Animation - Fatal编程技术网

Java overridePendingTransition仅显示输入动画

Java overridePendingTransition仅显示输入动画,java,android,android-layout,android-activity,android-animation,Java,Android,Android Layout,Android Activity,Android Animation,当用户更改语言区域设置时,我希望使用新的区域设置重新加载活动。我想在完成活动并再次启动时创建动画过渡 过渡动画如下所示: 退出动画将活动缩放到屏幕中心。 输入动画是从屏幕中心缩放活动 finish(); overridePendingTransition(0, R.anim.scale_to_center); Intent intent =new Intent(SettingsActivity.this, SettingsActivity.class); startActivity(intent

当用户更改语言区域设置时,我希望使用新的区域设置重新加载活动。我想在完成活动并再次启动时创建动画过渡

过渡动画如下所示:

退出动画将活动缩放到屏幕中心。 输入动画是从屏幕中心缩放活动

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\u to\u 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>
<?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);

谢谢。

在方法
重写Transition
上设置两个动画,并在调用
startActivity
后调用finish

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

它在这里也不起作用。我通过创建null_animation.xml修复了它:

<translate xmlns:android="http://schemas.android.com/apk/res/android"
android:duration="@android:integer/config_mediumAnimTime"
android:fromYDelta="0%p"
android:toYDelta="0%p" />


@Luksporg我以前试过这个,它在target 2.X上非常有效。但是,我看不到它在4.0模拟器上工作。有什么原因吗?@M.ES根本不起作用,或者它又不完整了?我刚刚测试了我的代码,动画似乎可以工作(enter动画至少可以工作),但旧的活动在设置动画时会留下一些帧,但我认为这是因为我的计算机太弱,无法使模拟器足够快地显示动画。@Laksporg在4.0模拟器上,输入和输出动画似乎重叠。在2.X上运行得非常好。你认为这种重叠不会出现在真正的4.X设备上吗?@M.ES我不知道这是因为ICS还是因为模拟器。我没有带IC的真正设备用于测试。@Laksporg Thx非常感谢您的回答。:)
false
解决我的问题,也许你可以试试。