我想让UI元素像GridView一样,我希望它具有完整的功能,但希望它是水平滚动的,而不是垂直滚动的。
所谓水平滚动,我的意思是,它应该是那样构建的,而不是放在一个HorizontalScrollView中。
我的Custom GridView将有固定数量的rows,比如说4-5,而columns应该是extensible,基于Adapter中的项目数。您可以认为它与本机GridView的功能相反,但它应该维护该功能。
我已经看过GridView是如何由谷歌实现的源代码,但是我能够理解得更少,开始从头开始制作View似乎不是一个好主意,因为我担心我不能像Google那样对内存优化进行公正的处理。
我注意到GridView扩展了AbsListView,所以我的问题是,是AbsListView让GridView垂直滚动并从适配器中添加项,还是GridView增加垂直滚动功能?我应该调整GridView还是AbsListView?
如果知道有什么事情已经做了我想做的事情,那就更好了?
这已经在本地画廊和安卓蜂巢3.1及以上的YouTube应用程序中实现。所以,如果有人有什么想法,请详细说明。
蜂窝画廊应用程序的快照:

蜂窝 YouTube应用程序快照:

发布于 2012-07-23 10:45:20
API 11中有setRotation,您必须将网格视图旋转90度,子视图旋转-90度。
文档:http://developer.android.com/reference/android/view/View.html#setRotation(float
更新:
要想在视图上获得3d效果,下面的APIs是很有用的
setCameraDistance(float) -设置z轴距离(深度)
setRotationX(float) -设置水平轴角
setRotationY(float) -设置垂直轴角
将摄像机的距离设置为屏幕高度的一半。然后根据视图在屏幕上的位置设置rotationX。旋转角度应该是从左到右的(20,10,0,-10,-20)。稍后,你可以玩rotationY角度,以获得一些高度感知。
在扩展GridView的overriden 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.
}
}https://stackoverflow.com/questions/11577153
复制相似问题