Переход активности в Android

Как определить переход между двумя действиями для Android 1.5 и более поздних версий? Я бы хотел, чтобы активность исчезла.

Вы можете сделать это с помощью Activity.overridePendingTransition() . Вы можете определить простые анимации перехода в файле ресурсов XML. Здесь можно найти хороший учебник по этому вопросу.

Вот код, чтобы сделать приятное плавное увядание между двумя действиями.

Создайте файл с именем fadein.xml в res / anim

   

Создайте файл с именем fadeout.xml в res / anim

   

Если вы хотите исчезнуть из Activity A в Activity B, поместите следующее в метод onCreate для Activity B. Перед установкой setContentView работает для меня.

 overridePendingTransition(R.anim.fadein, R.anim.fadeout); 

Если затухание слишком медленное для вас, измените android: продолжительность в xml-файлах выше на что-то меньшее.

Даже простой способ сделать это:

  1. Создайте стиль анимации в файле styles.xml
  
  1. Добавьте этот стиль в тему приложения
  

Это оно 🙂

Да. Вы можете указать ОС, какой переход вы хотите иметь для своей деятельности.

 @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); getWindow().setWindowAnimations(ANIMATION); ... } 

Где ANIMATION – целое число, относящееся к встроенной анимации в ОС.

Список анимаций по умолчанию см. По адресу : http://developer.android.com/reference/android/R.anim.html.

На самом деле есть fade_in и fade_out для уровня API 1 и выше.

создать res> anim> fadein.xml

   

создать res> anim> fadeout.xml

   

В res> значениях> styles.xml

  

В действиях onCreate ()

 getWindow().getAttributes().windowAnimations = R.style.Fade; 

Вот код, чтобы сделать приятную гладко между двумя действиями.

  1. плавный эффект слева направо

    Создайте файл с именем slide_in_right.xml и slide_out_right.xml в res / anim

    slide_in_right.xml

           

    slide_out_right.xml

          
  2. плавный эффект справа налево

    Создайте файл с именем animation_enter.xml и animation_leave.xml в res / anim

    animation_enter.xml

         

    animation_leave.xml

         
  3. Переход от одного действия к второму

      Intent intent_next=new Intent(One_Activity.this,Second_Activity.class); overridePendingTransition(R.anim.slide_in_right,R.anim.slide_out_right); startActivity(intent_next); finish(); 

    4. На предыдущем пресс-мероприятии или Перейдите со второго действия на одно действие

      Intent home_intent = new Intent(Second_Activity.this, One_Activity.class); overridePendingTransition(R.anim.animation_enter, R.anim.animation_leave); startActivity(home_intent); finish(); 

Я перезаписываю анимацию активности по умолчанию. Я тестирую его в api 15, что он работает гладко. Вот решение, которое я использую:

    

Создайте папку с файлами под папкой res и создайте четыре файла анимации:

slide_in_right.xml

     

slide_out_left.xml

     

slide_in_left.xml

     

slide_out_right.xml

     

Вы можете загрузить мой образец проекта .

Это все… 🙂

Вы не можете использовать overridePendingTransition в Android 1.5. overridePendingTransistion пришел на Android 2.0.

Если вы пройдете это без какой-либо ошибки, вам придется скомпилировать цель (1,5 или выше) с помощью обычных анимаций (или вы сами), или вам нужно скомпилировать для цели (2.0 или выше) с помощью переопределенияPendingTransistion.

Описание: Вы не можете использовать overridePendingTransistion в Android 1.5 .

Вы можете использовать встроенные анимации в ОС.

IN GALAXY Приборы:

Вы должны убедиться, что вы не отключили его в устройстве, используя Настройки> Параметры разработчика:

two muppets

Использовать ActivityCompat.startActivity () работает API> 21.

  ActivityOptionsCompat options = ActivityOptionsCompat.makeSceneTransitionAnimation(activity, transitionImage, EXTRA_IMAGE); ActivityCompat.startActivity(activity, intent, options.toBundle()); 

Прежде чем начать свое намерение:

 ActivityOptions options = ActivityOptions.makeSceneTransitionAnimation(AlbumListActivity.this); startActivity(intent, options.toBundle()); 

Это дает анимацию по умолчанию для перехода на активность.

Некоторые версии Android поддерживают настраиваемые переходы Activity а некоторые – нет (более старые устройства). Если вы хотите использовать настраиваемые переходы, рекомендуется проверить, имеет ли действие метод overridePendingTransition() , как это делается в старых версиях.

Чтобы узнать, существует ли метод или нет, можно использовать API отражения. Вот простой код, который будет проверять и возвращать метод, если он существует:

 Method mOverridePendingTransition; try { mOverridePendingTransition = Activity.class.getMethod( "overridePendingTransition", new Class[] { Integer.TYPE, Integer.TYPE } ); /* success */ } catch (NoSuchMethodException nsme) { /* failure, this version of Android doesn't have this method */ } 

И тогда мы можем применить наш собственный переход, т. Е. Использовать этот метод, если он существует:

 if (UIConstants.mOverridePendingTransition != null) { try { UIConstants.mOverridePendingTransition.invoke(MainActivity.this, R.anim.activity_fade_in, R.anim.activity_fade_out); } catch (InvocationTargetException e) { e.printStackTrace(); } catch (IllegalAccessException e) { e.printStackTrace(); } } 

Здесь, например, для демонстрации перехода использовались простые анимации fade-in и fade-out.

увеличить масштаб анимации

 Intent i = new Intent(getApplicationContext(), LoginActivity.class); overridePendingTransition(R.anim.zoom_enter, R.anim.zoom_exit); startActivity(i); finish(); 

zoom_enter

   

zoom_exit

  
Давайте будем гением компьютера.