Intereting Posts
Android Studio, Locat отображает бесконечное «I / art: Enter while loop». Даже при запуске Empty Activity Есть ли безопасный способ управления ключами API? Как использовать RadioGroup в пользовательском адаптере ListView? Как использовать библиотеку openSSL в приложении ANDROID Надежный способ узнать, когда уходит в отставку Android-клавиатура (обратный вызов, который работает на каждом телефоне) Почему мое сравнение String to String не удается? Android: как деформировать изображения? Android studio максимальное количество строк logcat Как получить тему Holo Light, работающую в моем приложении Xamarin Android studio ctrl + space открывает окно документации Android 4.0.1 разбивает локальное хранилище WebView HTML 5? Воспроизведение файлов ресурсов Android из внутреннего хранилища приводит к тому, что MediaPlayer.prepare предоставляет IOException Ошибка Android в eclipse: не удалось разрешить целевой «android-xx» Почему AudioRecord.getMinBufferSize возвращает ERROR_BAD_VALUE (-2)? Отключение звукового сигнала распознавания голоса Google

Android Viewpager tinder как пользовательский интерфейс с появлением 3D-карты

Я пытаюсь создать Tinder-подобный интерфейс в android с помощью ViewPager.

Я просмотрел эту библиотеку: https://github.com/kikoso/Swipeable-Cards , но я хотел бы видеть предыдущую карточку, как только я прокручу вправо, отсюда предпочтение ViewPager.

Специфическая деталь пользовательского интерфейса, которую я ищу, это:

Укладка изображений с контуром следующего представления под текущим видом . Мне удалось достичь укладки представлений через интерфейс ViewPager.PageTransformer, но я не могу получить контур стека последующих представлений внутри пейджера – часть, которая придает ему 3D-вид – вот здесь – карта Сложены поверх другой карты – http://i1.cdnds.net/14/38/300×522/friends-tinder-profiles-ross.jpg

Вот мой метод pageTransform

 public void transformPage(View view, float position) { int pageWidth = view.getWidth(); if (position < -1) { // [-Infinity,-1) // This page is way off-screen to the left. view.setAlpha(0); } else if (position <= 0) { // [-1,0] // Use the default slide transition when moving to the left page view.setAlpha(1); view.setTranslationX(0); view.setScaleX(1); view.setScaleY(1); view.setRotation(90*(position)); } else if (position < 1) { // (0,1] // Fade the page out. view.setAlpha(1); // Counteract the default slide transition view.setTranslationX(pageWidth * -position); view.setScaleX(1); view.setScaleY(1); } else if (position==1) { view.setAlpha(1); // view.setPadding(0,15,0,0); } else { // (1,+Infinity] // This page is way off-screen to the right. view.setAlpha(0); } } 

Возможно ли это с помощью viewPager?

Solutions Collecting From Web of "Android Viewpager tinder как пользовательский интерфейс с появлением 3D-карты"

Таким образом, это было так, как я его настроил – его немного взломало, потому что я вручную запускаю метод transformPage как указано в моем комментарии здесь:

Android ViewPager вручную вызывает PageTransformer transformPage

НО, это работает!

 @Override public void transformPage(View view, float position) { int pageWidth = view.getWidth(); if (position < -1) { // [-Infinity,-1) // This page is way off-screen to the left. view.setAlpha(0); } else if (position <= 0) { // [-1,0] // Use the default slide transition when moving to the left page view.setAlpha(1); view.setTranslationX(0); view.setTranslationY(0); view.setScaleX(1); view.setScaleY(1); view.setRotation(90*(position)); } else if (position < 1) { // (0,1] // Fade the page out. view.setAlpha(1); view.setRotation(0); // Counteract the default slide transition view.setTranslationX(pageWidth * -position); view.setTranslationY(50*position); view.setScaleX(Math.max(0.9f, (1 - position))); view.setScaleY(Math.max(0.9f, (1 - position))); CardView cv = (CardView)view.findViewById(R.id.card_view); cv.setPadding(0,0,0,0); } else if (position==1) { view.setAlpha(1); view.setTranslationX(pageWidth*-position); view.setTranslationY(50*position); view.setScaleX(Math.max(0.9f, (1 - position))); view.setScaleY(Math.max(0.9f, (1 - position))); } else { // (1,+Infinity] // This page is way off-screen to the right. view.setAlpha(1); } } 

Вы не можете реализовать эффект tinder с интерфейсом PageTransformer, потому что значение позиции составляет всего 1 ось. У вас должны быть другие значения, такие как координаты точки касания по оси x, y, поскольку эффект tinder использует тригонометрические функции.