Snapchat как анимация Viewpager
Я пытаюсь создать анимацию так же, как Snapchat Viewpager, где фон левого и правого фрагментов исчезает, но содержимое скользит. Все это происходит, когда фрагмент камеры (центральный фрагмент) остается статичным. Это как левый и правый фрагменты перекрывают центральный фрагмент.
Я видел несколько учебных пособий, и ближе всего я мог найти эту ссылку: OnPageChangeListener alpha crossfading
Проблема в том, что он работает только тогда, когда виден правильный фрагмент. В то время как фон левого фрагмента не перекрывает центральный фрагмент.
КОД:
public class CustomPageTransformer implements ViewPager.PageTransformer {
public void transformPage(View view, float position) {
int pageWidth = view.getWidth();
View imageView = view.findViewById(R.id.image_view);
View contentView = view.findViewById(R.id.content_area);
if (position < -1) { // [-Infinity,-1)
// This page is way off-screen to the left
} else if (position <= 0) { // [-1,0]
// This page is moving out to the left
// Counteract the default swipe
view.setTranslationX(pageWidth * -position);
if (contentView != null) {
// But swipe the contentView
contentView.setTranslationX(pageWidth * position);
}
if (imageView != null) {
// Fade the image in
imageView.setAlpha(1 + position);
}
} else if (position <= 1) { // (0,1]
// This page is moving in from the right
// Counteract the default swipe
view.setTranslationX(pageWidth * -position);
if (contentView != null) {
// But swipe the contentView
contentView.setTranslationX(pageWidth * position);
}
if (imageView != null) {
// Fade the image out
imageView.setAlpha(1 - position);
}
} else { // (1,+Infinity]
// This page is way off-screen to the right
}
}
Пример:
Официальное приложение Snapchat
Приведенный выше пример показывает, что камера статична (неподвижна), в то время как фон страницы обнаружения перекрывает фрагмент камеры (центральный фрагмент), но содержимое страницы обнаружения перемещается (также перекрывая фрагмент камеры)
Если у кого-нибудь из вас есть идеи, как это сделать, я был бы очень признателен.
0 ответов
Вы можете использовать эту библиотеку для реализации того же пользовательского интерфейса, что и SnapChat. Эта библиотека также обеспечивает настройку, например отображение более трех вкладок, а также имеет множество функций, которые помогут вам создать Snap Like Viewpager.