Анимация перехода между действиями с помощью FLAG_ACTIVITY_CLEAR_TOP

В моем приложении для Android я создаю метод, который выводит все действия и вызывает первое действие.

Я использую этот код:

Intent intent = new Intent(this, MMConnection.class);
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
this.startActivity(intent);

Поскольку я заметил, что переход по-прежнему был анимацией слева направо, кто-нибудь знает, есть ли способ изменить системную анимацию при запуске действия?

На самом деле, в идеале я хотел бы иметь переход справа налево (например, при нажатии кнопки возврата)

Спасибо за помощь!


person Romain Piel    schedule 17.08.2010    source источник


Ответы (4)


CoolMcGrr прав, вы хотите использовать overridePendingTransition(int enterAnim, int exitAnim) .

Чтобы получить стандартный переход «кнопка назад», я использую их как переходы enterAnim и exitAnim:

push_right_in.xml

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
    <translate android:fromXDelta="-100%p" android:toXDelta="0" android:duration="@android:integer/config_shortAnimTime"/>
    <alpha android:fromAlpha="0.0" android:toAlpha="1.0" android:duration="@android:integer/config_shortAnimTime" />
</set>

push_right_out.xml

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
    <translate android:fromXDelta="0" android:toXDelta="100%p" android:duration="@android:integer/config_shortAnimTime"/>
    <alpha android:fromAlpha="1.0" android:toAlpha="0.0" android:duration="@android:integer/config_shortAnimTime" />
</set>
person E-Riz    schedule 27.06.2011


Проблема возникает в настоящее время, потому что pre-ICS и ICS имеют разные встроенные переходы активности. Это намного чище, чем определение собственной анимации и независимости от SDK:

Intent intent = new Intent(this, MMConnection.class);
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP|Intent.FLAG_ACTIVITY_NO_ANIMATION);
this.startActivity(intent);
finish();

Это запустит действие (еще не видимое) и воспроизведет переход «окончание действия» к новому действию.

person dzeikei    schedule 22.10.2012

Я использовал этот код:

overridePendingTransition(android.R.anim.fade_in, android.R.anim.fade_out);

Вы можете увидеть эти примеры в GmailAnimation или LopeAnimations. Также вы можете увидеть больше в этом блоге.

person Cabezas    schedule 04.09.2014