Переход анимации между действиями с использованием FLAG_ACTIVITY_CLEAR_TOP

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

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

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

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

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

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

Solutions Collecting From Web of "Переход анимации между действиями с использованием FLAG_ACTIVITY_CLEAR_TOP"

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> 

Вы должны взглянуть на Activity.overridePendingTransition () .

Конечно, для этого требуется, чтобы вы запускали как минимум версию 2.0 SDK.

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

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

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

Проблема возникает в наши дни, потому что 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(); 

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