English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
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 (во время отправки письма, пожалуйста, замените # на @) для сообщения о нарушении,并提供相关证据. При обнаружении факта нарушения, сайт незамедлительно удаляет涉嫌侵权的内容。