Android布局:尽可能多地显示ImageView,而无需滚动

时间:2012-06-01 21:36:52

标签: android android-layout android-imageview android-gridview android-tablelayout

我正在开发一个应该在屏幕上显示几个相同大小的图像的应用程序。但它应该只显示尽可能多的图像而不提供滚动。

E.g。在“大”平板电脑上,它可以显示10x10图像视图(屏幕很大,因此图片空间很大)

在“大”手机上可能有足够的空间来显示6x6 ImageView,因此它应该只显示6x6的图像阵列。

在小型手机上,只有4x4 ImageViews的空间,所以它应该只显示这个。

如何在Android中制作此功能?我知道“布局大”,但是如果我为“大型”设备制作一个特殊的固定xml布局,它将不适合所有设备。例如。 Galaxy Nexus是一款“普通”设备,Nexus One设备也是如此,但Galaxy Nexus上至少要有一个或两个镜像视图行,而不是Nexus One。那么我是否必须在代码中以某种方式测量分辨率有多大并相应地显示一些TableRows?或者有一种特殊的方式来管理它吗?

2 个答案:

答案 0 :(得分:0)

您可以查询设备屏幕的属性,例如尺寸,密度等。一旦知道尺寸,就可以选择要使用的布局。

看看这个stackoverflow帖子。 Android: how to get screen dimensions

答案 1 :(得分:0)

您应该使用GridView来管理它。

GridView Android Developers

编辑:事实上,正如Tomasz Gawel所说:notice the GridView's android:numColumns="auto_fit" xml attribute

编辑:由于您不希望它可滚动,您可以只获取屏幕大小,将其除以项目的大小,并只输入您想要在网格视图中显示的项目。 gridview只会在项目数量多于可显示的项目时滚动。

getResources().getDisplayMetrics().widthPixels and heightPixels