1

Мне нужно реализовать прокручивающийся макет, который загружается изображениями с Adapter, и другой прокручиваемый макет поверх него (второй слой FrameLayout), который содержит текстовые метки отдельных изображений. Верхний слой должен прокручиваться с помощью эффекта «параллакса»: http://upload.wikimedia.org/wikipedia/commons/3/34/Parallax_scrolling_example_scene.gif - но в нашем случае, в отличие от этой анимации, элементы в фоновом и переднем слоях связаны друг с другом, поскольку текстовые метки явно принадлежат и описывают изображения. Слои могут быть listviews with custom dynamics (верхняя часть быстрее, чем нижняя), но я не уверен, как их синхронизировать; пара идей:Синхронизация слоев в прокрутке параллакса

  • , когда движение останавливается в обоих слоях, перерисовывать один из них, чтобы соответствовать видимые предметы другого списка - но это приводит к мерцанию/подскакивает

  • или верхний слой может динамически увеличить расстояние между элементами на основе скорости, так что медленнее фоновый слой может идти в ногу с его движением, - но я не уверен в математике, необходимой для этого

+0

Может быть что-то подобное, что бы помочь вам (я нашел его в другом потоке): ' ' – g00dy

+0

, каким образом будет эта помощь? ... кажется совершенно не связанным с моим вопросом. – Gabor

+1

Это базовая компоновка для движения паралакса. Я думаю, что это может послужить вам основой для вашей реализации, если я это хорошо пойму. Это не полное решение, и именно поэтому я разместил его в комментарии. Я не знаю, как реализовать остальную часть вашего требования, но тот, который я дал, работает хорошо. Если это не связано с тем, что вы хотите, я бы с удовольствием удалил комментарий. – g00dy

ответ

0

Я, наконец, реализовал его, используя быстрый верхний слой прокрутки с большими размерами альбомов и два более медленных нижних слоя с небольшими альбомами (оба слоя имеют текст и изображение, объединенные вместе).

+0

Можете ли вы показать, как вы сделали это с более подробной информацией, пожалуйста? –

+0

есть продолжение с кодом: http://gamedev.stackexchange.com/questions/62723/trouble-with-a-modified-parallax-scrolling-concept – Gabor

0

Используйте 2 ListViews с пользовательскими динамики, а затем связать их скорость на расстоянии между en изображения. Итак, где x - скорость представления списка переднего плана, а y - скорость фонового списка, y = x * (subimage2.y-subimage1.y) * percentile.

+0

hi @ steven-mann, скорость зависит от жестов fling, который пользователь предоставляет, поэтому это интервал, который должен быть изменен нашим алгоритмом. Кстати, на переднем плане есть только текстовые ярлыки, а на заднем плане есть изображения различных размеров, которые они описывают. – Gabor

+0

x будет сырым входным входом, и вы рассчитали бы расстояние изображения, основанное на далеко друг от друга фоновых изображениях (которые должны быть статическими, чтобы вы могли технически предусмотреть). Выход y будет позиционированием вашего фонового изображения. Что касается процентиля, это постоянная константа модификатора скорости. Я начну с 0,01, а затем изменю, как вы пожелаете. –

+0

hi @ steven-mann, догадался, что вы ответили на мой комментарий, прежде чем я его отредактировал ... не уверен, что у вас есть проблема, поэтому PLS посмотрит на мое редактирование. Таким образом, жест fling применяется одновременно к обоим слоям, но поскольку передний план быстрее, он должен иметь увеличенный интервал (и вопрос в том, насколько это должно быть основано на скорости движения). – Gabor

Смежные вопросы