Mono Android - OverridePendingTransition не работает на устройстве, отлично работает в эмуляторе - PullRequest
1 голос
/ 18 февраля 2012

Я только начал работать с Mono для 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 и других приложений нет проблем с перемещением между представлениями.

Любая помощь будет высоко ценится.

Bryan.

Ответы [ 2 ]

4 голосов
/ 19 февраля 2012

Мне удалось решить эту проблему.В случае, если у кого-то еще возникла такая же проблема, решением было добавить поддержку файла largeScreen и anyDensity в файл манифеста:

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

Все анимации теперь работают нормально.

3 голосов
/ 18 мая 2012

Кажется, что все наши проблемы вызваны опцией в Настройки / Дисплей. А именно, анимации окон по умолчанию отключены.

...