Android 更改GridView的行为,使其水平滚动而不是垂直滚动
我想制作一个Android 更改GridView的行为,使其水平滚动而不是垂直滚动,android,android-listview,android-view,android-custom-view,android-gridview,Android,Android Listview,Android View,Android Custom View,Android Gridview,我想制作一个UI元素,就像GridView一样,我希望它具有完整的功能,但希望它能够水平滚动,而不是垂直滚动 所谓水平滚动,我的意思是它应该以这种方式构建,而不是放在水平滚动视图中 我的将是自定义网格视图将有固定数量的行比如4-5,并且列应基于适配器中的项目数可扩展。您可以将其视为与本机GridView相反的功能,但它应该保持功能 我已经看过了谷歌如何实现GridView的源代码,但我了解的很少,而且从头开始创建View似乎不是一个好主意,因为我担心我无法像谷歌那样公平地进行内存优化 我观察到G
UI
元素,就像GridView
一样,我希望它具有完整的功能,但希望它能够水平滚动,而不是垂直滚动
所谓水平滚动,我的意思是它应该以这种方式构建,而不是放在水平滚动视图中
我的将是自定义网格视图
将有固定数量的行
比如4-5
,并且列
应基于适配器
中的项目数可扩展
。您可以将其视为与本机GridView
相反的功能,但它应该保持功能
我已经看过了谷歌如何实现GridView
的源代码,但我了解的很少,而且从头开始创建View
似乎不是一个好主意,因为我担心我无法像谷歌那样公平地进行内存优化
我观察到GridView
扩展了AbsListView
,所以我的问题是,是AbsListView
允许GridView
垂直滚动并从适配器添加项目,还是GridView
增加了垂直滚动能力?我应该调整GridView
还是AbsListView
如果知道有什么东西已经做了我想做的事情,那就更好了
这已经在Android蜂巢3.1及以上版本的本机图库和YouTube应用程序中实现。因此,如果有人有想法,请详细说明
蜂巢画廊应用程序快照:
蜂窝YouTube应用程序的快照:
在API 11中有设置旋转
。您必须将gridview旋转90度,将子视图旋转-90度
文件:)
更新:
要在视图上获得3d效果,以下API将非常有用
-设置z轴距离(深度)
-设置水平轴角度
-设置垂直轴角度
将相机距离设置为屏幕高度的一半。然后根据视图在屏幕上的位置设置旋转X。从左到右的旋转角度应该类似于(20,10,0,-10,-20)。稍后,您可以使用旋转角度来获得一些高度感知
在扩展GridView
的覆盖layout
方法中执行所有设置
@override
void layout(int t, int l, int r, int b) {
super.layout(t, l, r, b);
...
int columnStart = getFirstVisiblePosition()/no_of_columns;
int columnEnd = getLastVisiblePosition()/no_of_columns;
loop from 'columnStart' to 'columnEnd' 'no_of_colmns' times {
// set the camera distance and rotationX to views
// depending on the position of a view on screen.
}
}
请尝试此链接@Abhilasha谢谢,但它与我想做的完全无关。您检查过GalleryView吗?GalleryView只有一行,我想要多行,类似于水平滚动网格。我想您必须从头开始创建一行。我在J2ME中开发了相同的小部件。您需要使用Canvas
。如果你从零开始,请告诉我。我可以帮你想出一些主意。别忘了这肯定很费时。将GridView旋转90度,我希望角度在z轴上被压下,我的意思是它应该感觉像是被冲压过的,更像是一个柱状视图。提供3d外观并不是那么容易。。您必须编写自定义视图组。如何使其水平滚动?它仍然垂直滚动?你能粘贴结果快照吗?你能简单地回答一下吗,我听不懂,