当您启动 Angry Birds 并点击播放时,您会看到一个水平滚动的菜单,其中包含一条居中的图像线,一旦单击,您就可以开始游戏了。我想知道如何制作一个与此类似的菜单,因为它可以横向(水平)滚动并显示可点击的图像?提前致谢!
3 回答
我认为您可以使用HorizontalScrollView 来完成此操作。您的 HorizontalScrollView 的子级将是具有方向:水平的 LinearLayout。它将包含 ImageViews 或 ImageButtons。为了实现 Angry Birds 中的“对齐”效果,您必须为滚动视图设置 onTouchListener(),并在 ACTION_UP 部分中检查 hScrlView.getScrollX() 以查看哪个图像您最接近,然后调用 hScrlView.scrollTo(x,y) 并使 x 参数成为您最接近的图像的布局 x 值。
编辑:我从未亲自使用过 GalleryView,但根据本教程,您似乎可以让它以这种方式工作。它可能会为您处理“捕捉到”机制,因此您不必制作自己的触摸侦听器来执行此操作。我不确定您是否可以在画廊中设置图像之间的空间(愤怒的小鸟中的图片分布相当多),但我确信如果您使用 HorizontalScrollView 和线性或相对布局,您可以。
您可以使用 Gallery 来做到这一点,并在您的适配器中将 TouchListeners 添加到每个项目的 ImageViews 中。这是最好的方式,因为当您滚动时,画廊将支持每个图像居中。使用 HorizontalScrollView,您只能滚动滚动,并且菜单项不会集中。
我自己还没有找到如何做到这一点,但这篇文章是一个好的开始: