English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Реализация 3D-галереи в Android с помощью ViewPager

ViewPager имеет метод под названием:

setPageTransformer(boolean reverseDrawingOrder, PageTransformer transformer)

Для установки эффекта анимации при переключении ViewPager.

Здесь нам нужно только создать пользовательский PageTransformer для достижения необходимых эффектов анимации.

public class ScrollOffsetTransformer implements PageTransformer {
  private static final float MIN_SCALE = 0.85F;
  /**
   * Параметр position указывает на положение данной страницы относительно центра экрана. Это динамическое свойство, которое изменяется при скольжении страницы.
   * Когда страница (page) заполнена整个 экран, значение positoin равно 0; когда страница (page) только что ушла с правого (левого) края экрана, значение position равно 1 (-1);
   * Когда две страницы respectively скользят до половины, одна страница равна -0.5, другая страница равна 0.5.
   * На основе позиции страницы на экране, используя такие методы, как setAlpha(), setTranslationX
   * Используйте методы setScaleY() или setScaleY() для установки свойств страницы, создания пользовательских анимаций скольжения.
   */
  @Override
  public void transformPage(View view, float position) {
    // TODO Автоматически сгенерированный метод
    float scaleFactor = Math.max(MIN_SCALE, 1 - Math.abs(position));
    float rotate = 30 * Math.abs(position);
    float transla = 50 * Math.abs(position);
    if (position > 0) {
      view.setScaleX(scaleFactor);
      view.setScaleY(scaleFactor);
      view.setRotationY(-rotate);
      view.setTranslationX(-transla);
    } else {
      view.setScaleX(scaleFactor);
      view.setScaleY(scaleFactor);
      view.setRotationY(rotate);
      view.setTranslationX(transla);
    }
  }
}

Затем

viewPager

Добавить

 viewPager.setPageTransformer(true, new ScrollOffsetTransformer())

Названные выше методы реализации 3D галереи Android ViewPager,介绍的Android viewpager 3D画廊的实现方法,希望对大家有所帮助,如果大家有任何疑问请给我留言,我会及时回复大家的。在此也非常感谢大家对呐喊教程网站的支持!

Заявление: содержимое этой статьи взято из Интернета, авторские права принадлежат соответствующему автору, материалы предоставлены пользователями Интернета в добровольном порядке, сайт не обладает правами собственности, материалы не редактировались вручную, и сайт не несет ответственности за связанные с этим法律责任. Если вы обнаружите материалы,涉嫌侵犯版权, пожалуйста, отправьте письмо по адресу: notice#oldtoolbag.com (во время отправки письма, пожалуйста, замените # на @) для сообщения о нарушении,并提供相关证据. При обнаружении факта нарушения, сайт незамедлительно удаляет涉嫌侵权的内容。

Основной курс
Тебе может понравиться