0

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

я применил следующий код, но не работает

startActivityForResult(intent, SET_FILTER_REQUEST); 
       overridePendingTransition(R.anim.translate_in_anim, R.anim.stay_still_anim); 

я использую следующий файл XML для анимации

stay_still_anim.xml

<?xml version="1.0" encoding="utf-8"?> 
<translate xmlns:android="http://schemas.android.com/apk/res/android" 
    android:duration="250" 
    android:fromYDelta="0%p" 
    android:toYDelta="0%p" /> 

и

translate_in_anim.xml

<set xmlns:android="http://schemas.android.com/apk/res/android" 
      android:fillAfter="true"> 
    <translate android:fromYDelta="100" 
     android:toYDelta="0%" 
     android:duration="1000"/> 
</set> 
+0

overridePendingTransition (R.anim.translate_in_anim, 0); – Qamar

+0

не работает Я уже пробовал это – Manish

+0

, пожалуйста, прочитайте документ. https://developer.android.com/reference/android/app/Activity.html#overridePendingTransition (int, int). Где первый аргумент вводит анимацию, а второй - анимацию выхода. –

ответ

0

Я могу исправить это с помощью

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

abc_slide_in_bottom.xml

<?xml version="1.0" encoding="utf-8"?> 
<translate xmlns:android="http://schemas.android.com/apk/res/android" 
      android:interpolator="@android:anim/decelerate_interpolator" 
      android:fromYDelta="50%p" android:toYDelta="0" 
      android:duration="@android:integer/config_mediumAnimTime"/> 
1

просто держать R.anim.out пустым:

<set xmlns:android="http://schemas.android.com/apk/res/android"> 

</set> 

затем:

startActivity(new Intent(Main2Activity.this, MainActivity.class)); 
overridePendingTransition(R.anim.translate_in_anim, R.anim.out); 

, что завершит деятельность по умолчанию анимации.

2

В принципе, если вы исправите файлы анимации xml, это сработает отлично для вас. Первое, что вам нужно отметить, - обеспечить продолжительность продолжительности анимации для обоих Xml. а также исправить ваши fromYDelta значение из до 100%, как показано ниже. вы можете скопировать его и вставить в свой код.

<set xmlns:android="http://schemas.android.com/apk/res/android" 
     android:fillAfter="true"> 
    <translate android:fromYDelta="100%" 
    android:toYDelta="0%" 
    android:duration="@android:integer/config_longAnimTime"/> 
</set> 

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