Mono Android - OverridePendingTransition无法在设备上运行,在模拟器中运行良好

时间:2012-02-18 04:32:08

标签: android animation mono transition

我刚刚开始使用Mono for Android,并且无法在我的设备上使用过渡动画。它在Android模拟器中运行良好。

该设备是HTC Sensation,启用了所有动画。

我的动画XML文件是:

slide_in_right.xml

<set xmlns:android="http://schemas.android.com/apk/res/android" android:interpolator="@android:anim/accelerate_interpolator">
<translate android:fromXDelta="100%p" android:toXDelta="0%p" android:duration="200" android:startOffset="0" />
</set>

slide_out_left.xml

<set xmlns:android="http://schemas.android.com/apk/res/android" android:interpolator="@android:anim/accelerate_interpolator">
<translate android:fromXDelta="0" android:toXDelta="-100%p" android:duration="200" />
<alpha android:fromAlpha="1.0" android:toAlpha="0.0" android:duration="200" android:startOffset="0" />
</set>

这里调用动画:

Intent intent = new Intent(this, typeof(Activity2));
StartActivity(intent);
OverridePendingTransition(Resource.Animation.slide_in_right, Resource.Animation.slide_out_left);

在模拟器中,当新视图从右侧滑入时,这会导致第一个视图向左滑动。

当我上传到设备并运行它时,没有滑动,第一个视图淡出,第二个视图弹出它的位置。

我尝试注释掉OverridePendingTransition行以查看淡入淡出转换是否正常工作而滑动转换是否正常,但没有区别。所以看来问题出在OverridePendingTransition而不是动画的任何部分。

我没有任何其他Android设备可以测试它,所以不知道这是否是特定的HTC问题。

在设备设置中打开所有动画; Facebook和其他应用程序在视图之间滑动似乎没有问题。

非常感谢任何帮助。

布赖恩。

2 个答案:

答案 0 :(得分:4)

我设法解决了这个问题。如果其他人遇到同样的问题,解决方案是将对bigScreen和anyDensity的支持添加到清单文件中:

<supports-screens
    android:smallScreens="true"
    android:normalScreens="true"
    android:largeScreens="true"
    android:resizeable="true"
    android:anyDensity="true">
</supports-screens>

所有动画现在都可以正常使用。

答案 1 :(得分:3)

似乎我们所有的麻烦都是由设置/显示中的选项引起的。即默认情况下关闭窗口动画。