Анимированная анимация карты между действиями

Как сделать анимацию с переводом карт между действиями

http://developer.android.com/training/animation/cardflip.html

Вышеуказанная ссылка Переключает между статическими макетами .. Я хочу сделать CardFlip между двумя действиями, имеющими динамический макет. Спасибо в Advance .. 🙂

У меня есть два вида деятельности …

  1. A Main_Activity которая содержит сведения о продукте (Say Galaxy s3)
  2. Search_Activity которая запрашивает запрос на поиск пользователей.

В Main_Activity есть кнопка Main_Activity . Когда вы нажимаете кнопку, в представлении Main_Activity должна отображаться карта в Search_Activity . Точно так же, как только пользователь выбирает продукт, он должен Card-Flip .

Я попытался реализовать, как указано выше в адресе. Но он перелистывает только два статических макета, определенных с помощью XML . И я выполняю поиск в ActionBar

Solutions Collecting From Web of "Анимированная анимация карты между действиями"

Из того, что у меня есть, вы не можете делать точно такую ​​же карточку между действиями.
НО,
Как вы уже знаете, вам нужно overridePendingTransition() , чтобы анимировать переход между действиями ( doc здесь ). Теперь все, что вам нужно, это ресурс анимации, чтобы сделать трюк. Я использовал их:
fade_in.xml

 <?xml version="1.0" encoding="utf-8"?><set xmlns:android="http://schemas.android.com/apk/res/android" > <scale android:duration="200" android:fromXScale="0.0" android:fromYScale="1.0" android:interpolator="@android:anim/accelerate_decelerate_interpolator" android:pivotX="50%" android:pivotY="50%" android:startOffset="200" android:toXScale="1.0" android:toYScale="1.0" /> <alpha android:duration="1" android:fromAlpha="0.0" android:startOffset="200" android:toAlpha="1.0" /> </set> 

fade_out.xml

 <?xml version="1.0" encoding="utf-8"?><set xmlns:android="http://schemas.android.com/apk/res/android" > <scale android:duration="200" android:fromXScale="1.0" android:fromYScale="1.0" android:interpolator="@android:anim/accelerate_decelerate_interpolator" android:pivotX="50%" android:pivotY="50%" android:toXScale="0.0" android:toYScale="1.0" /> <alpha android:duration="1" android:fromAlpha="1.0" android:startOffset="200" android:toAlpha="0.0" /> </set> 

Обратите внимание, что анимация поворота вращается только вокруг оси Z (той, что входит в экран) в заданной позиции поворота (координаты x, y), поэтому вы не можете использовать ее для поворота вокруг оси Y.
Я сделал это, чтобы масштабировать ширину вокруг середины, сохраняя высоту, которая создает иллюзию активности, действующей на ее сторону. Кроме того, входящие и выходящие действия исчезают и выходят соответственно, когда ширина равна 0, поэтому похоже, что они переключаются. Атрибут duration флип в анимации должен быть таким же, как и атрибут startOffset для обеих анимаций.
Не идеально, но сделал трюк для меня.
Надеюсь, поможет.

Невозможно сделать анимацию флип-карты между действиями так же просто, как указано в принятом ответе (который просто расширяет новую активность от середины экрана до сторон).

Причина этого заключается в том, что при вызове overridePendingTransition() вы просто применяете анимацию к запущенной операции , а не к той, которая в настоящее время открыта.

В (очень хорошем) учебнике, к которому привязано, всего 4 анимации, что составляет 2 анимации за переход (один для фрагмента, который входит в экран, и один для фрагмента, выходящего на экран).

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

  1. Отключите автоматическую анимацию окна, вызывая overridePendingTransition(0, 0)
  2. В комплекте со вторым действием передайте достаточно информации для новой активности, чтобы воссоздать представление (для меня это был размер и положение изображения и ресурс для загрузки)
  3. Настройте onPreDrawListener на новом представлении, в котором вы воссоздаете представление своей родительской активности (изображение в моем случае)
  4. Вам просто нужно перевернуть 2 вида. Для этого я переписал код, который был в учебнике по переходу на фрагмент флип-карты, который вы опубликовали, и переписал его в коде с помощью ObjectAnimator s.
  5. Переопределите метод onBackPressed() для запуска той же анимации в обратном порядке

С помощью этого механизма вы можете выполнять абсолютно любой настраиваемый переход, поскольку вы просто анимации между представлениями. Вот еще информация об этом методе: https://www.youtube.com/watch?v=ihzZrS69i_s#t=1001