Как реализовать различные анимационные переходы между фрагментами view pager

#android #android-viewpager #android-animation

#Android #android-viewpager #android-анимация

Вопрос:

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

Комментарии:

1. что вы подразумеваете под случайным??

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

Ответ №1:

Я думаю, вам нужно написать класс со всеми вашими определенными переходами, а затем использовать класс Java Random.

1) код будет выглядеть примерно так.

 private static int getRandomNumberInRange(int min, int max) {

    if (min >= max) {
        throw new IllegalArgumentException("max must be greater than min");
    }

    Random r = new Random();
    return r.nextInt((max - min)   1)   min;
}
  

В вашем случае это было бы

getRandomNumberInRange(1,30)

2) Определите ваши анимационные переходы как

transition1(), transition2(), transition3() и т.д…

3) И напишите в своем Activity вариант переключения для переходов фрагментов.

 switch(randomNumber)
{
  case 1: transform1();
   break;
  case 2: transform2(): 
  break;
.
.
default: transformX();
}
  

Комментарии:

1. спасибо karthik за ваш ответ, не могли бы вы, пожалуйста, предложить анимацию, также мне нужно по крайней мере 30 типов различной анимации. Я нашел одну библиотеку github.com/geftimov/android-viewpager-transformers для 13 анимаций требуется еще 17…

2. я думаю, что в этом есть немного больше — github.com/ToxicBakery/ViewPagerTransforms

3. вы всегда можете определить свои собственные преобразования — medium.com/@BashaChris/… Это также может быть ресурсом — android-arsenal.com/tag/111

4. еще одна проблема, анимация кажется слишком быстрой, можем ли мы контролировать время анимации? в дополнение к этому, могу ли я включить пролистывание во фрагменте view pager я хочу, чтобы мой textview был виден при каждом пролистывании, например, если фрагмент имеет 4 текстовых вида, пользователь должен провести 4 раза, чтобы увидеть весь фрагмент, тогда при пролистывании должен быть виден только viewpager следующий фрагмент как реализовать это

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