Анимация SplashScreen и маскирование LinearLayout - PullRequest
0 голосов
/ 19 марта 2020

Я хочу сделать SplashScreen. Можно ли воспроизвести этот только с анимацией? Здесь - это то, что я сделал до сих пор. Я буду иметь дело с анимацией fade_in, fade_out, но я не знаю, как замаскировать макет. Могу ли я использовать маску на LinearLayout?

1 Ответ

0 голосов
/ 19 марта 2020

Я могу помочь вам с этим, я думаю, что это можно сделать изначально, но это мой первый подход, и мы можем go оттуда:

  1. как макет, вам нужно иметь 2 Обзоры переработчиков со списком алфавитов, один справа и другой слева, начиная с альфа 0.
  2. , когда начинается действие, вы анимируете альфа обоих обзоров переработчика от 0 до 1.
  3. часть сокрытие, которое скрывает оба элемента переработчика, представляет собой градиентный фон с цветами, переходящими от purewhite #ffffff к полной прозрачности # 00ffffff
  4. у вас есть 2 вида с градиентным фоном, упомянутым выше, с противоположным углом поворота из-за противоположных направлений (один снизу) вверх, а другой сверху вниз).
  5. подготовить один и тот же адаптер с одинаковым списком алфавитов от A до R, назначить их обоим представлениям переработчика и установить один для запуска с индексом A и другой с индексом R
  6. теперь использует плавную прокрутку в обоих обзорах, один для прокрутки до последнего элемента и другой, чтобы перейти к первому элементу, и вы можете установить скорость плавной прокрутки, чтобы быть быстрее, чем обычно, если вы чувствовали, что это необходимо.
  7. После завершения прокрутки найдите элемент адаптера в выбранной позиции окна просмотра и используйте слушатель обновления со значением animator и ArgbEvaluator из черного цвета в белый и для цвета текста в текущем значении onAnimationUpdate (ValueAnimator animation) animation.getAnimatedValue ().
  8. В то же время используйте тот же процесс, что и выше, чтобы изменить цвет фона родительского макета с белого на черный.
...