Злые птицы, такие как прокручивание меню

Когда вы запустите Angry Birds и нажмите на игру, вы увидите горизонтальное прокручивающееся меню с центрированной линией изображений, которые когда-то нажали, вы можете начать игру, а что нет. Мне было интересно, как сделать меню симулятором этого в том, что он прокручивается вбок (по горизонтали) и показывает отображаемые изображения? Спасибо заранее!

Ответ 1

Я бы подумал, что вы можете выполнить это с помощью HorizontalScrollView. Ребенок вашего HorizontalScrollView будет LinearLayout с ориентацией: по горизонтали. Он будет содержать ImageViews или ImageButtons. Чтобы добиться эффекта "привязки" к тому, что в Angry Birds вам нужно будет установить onTouchListener() для вашего прокрутки, а внутри секции ACTION_UP вы должны проверить hScrlView.getScrollX(), чтобы увидеть, какое изображение вы ближе всего, затем вызовите hScrlView.scrollTo(x, y) и сделайте параметр x значением макета x для изображения, к которому вы ближе всего.

Изменить: я никогда не использовал персонаж GalleryView, но на основе этого учебника кажется, что вы, вероятно, можете заставить его работать таким образом. И он может справиться с механиком "привязки" к вам, поэтому вам не нужно будет делать свой собственный слушатель прикосновений, чтобы это сделать. Я не уверен, что вы можете установить пространство между изображениями (изображения в Angry Birds немного разбросаны) в галерее, хотя я точно знаю, что вы можете, если используете HorizontalScrollView и Linear или Relative Layout.

Ответ 2

Вы можете сделать это с помощью галереи, и в своем адаптере вы добавите TouchListeners в ImageViews из каждого элемента. Это лучший способ, потому что Галерея будет поддерживать каждое изображение, которое будет центрировано при прокрутке. С помощью HorizontalScrollView вы получите только прокрутку со стрелкой, а элементы вашего меню не будут централизованы.