Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/235.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/lua/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 更改GridView的行为,使其水平滚动而不是垂直滚动_Android_Android Listview_Android View_Android Custom View_Android Gridview - Fatal编程技术网

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外观并不是那么容易。。您必须编写自定义视图组。如何使其水平滚动?它仍然垂直滚动?你能粘贴结果快照吗?你能简单地回答一下吗,我听不懂,