如何在 Android 中创建垂直画廊?
我想创建一个行为类似于图库小部件但垂直滚动而不是水平滚动的小部件。也就是说图库中的图像应该垂直放置在屏幕上并且可以垂直滚动。有人可以帮助我吗?
I want to create a widget that behaves similar to the gallery widget but scrolls vertically instead of horizontally. That is images in gallery should be vertically placed on screen and can be scroll vertically.Does anybody help me please?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
假设您想要一列图像并且想要垂直滚动。检查以下示例
Assume that you want to have a single column of images and want to scroll vertically. Check the following example
我设法使用
ListView
创建一个简单的解决方案,并在滚动停止时将其滚动到最近的位置。只需创建一个ListView
并添加此OnScrollListener
:编辑: 我已将代码更新为更好的实现
I've managed to create a simple solution using a
ListView
, and scrolling it to the closest position when the scroll is stopped. Simply create aListView
and add thisOnScrollListener
:EDIT: I've updated the code to a better implementation
您必须扩展 Gallery 类,并在 Draw 过程中将画布旋转 90 度。然后只需要进行一些修改,例如修改 onTouch 事件等等。此后,布局将会出现一些问题(因为它仍然想在其参数中绘制布局)。所以我把它放在 LinearLayout 中并固定其中的布局大小。
所以最终的垂直画廊实际上是一个线性布局,里面有一个画廊。我已经实现了,效果非常好。您只需将放入其中的所有内容向另一个方向旋转 90 度即可。权衡确实很小,因此您可以扩展要放入其中的每个视图,然后在绘制过程中将其旋转到另一个方向。
You have to extend the Gallery class and in the Draw procedure rotate the canvas for 90 degrees. Then just a few adoptions like modifying the onTouch event and a few more is required. After this there will be a few problems with the layout (since it still wants to draw in the layout in its parameters). So I put it inside a LinearLayout and fixed the layout size in that.
So the final vertical gallery is actually a linear layout which has a gallery put inside it. I have implemented it, and it works quite well. You will only need to rotate everything you put in it for 90 degrees to the other direction. The trade off is really a little thus you can extend every view you want to put inside it and just rotate it to the other direction in the draw procedure.