为什么我的Android GridView周围有额外的像素?

时间:2010-10-27 19:35:33

标签: android gridview imageview

我的Android应用程序中有一个GridView,其中包含许多ImageView。屏幕上的空间有限,我希望图像尽可能多地占用可用空间。不幸的是,GridView总是在ImageViews的外边缘留下5个像素的空屏幕空间(ImageViews之间的空间设置为水平/垂直间距并且行为正确)。空白空间有点像ImageViews的边缘,但我无法摆脱它。有谁知道是什么导致了这个“边界”以及我如何摆脱它(或者至少让它变小)?感谢。

更新:我正在通过在Adapter类的getView()方法中膨胀.xml文件来创建ImageViews。这是我正在膨胀的xml:

<ImageView
  xmlns:android="http://schemas.android.com/apk/res/android"
  android:background="#FF00FF" />

我在我的布局xml文件中定义了GridView,如下所示:

<GridView
   android:id="@+id/mygrid"
   android:layout_width="fill_parent"
   android:layout_height="wrap_content"
   android:layout_above="@+id/abutton"
   android:layout_marginBottom="8dp"
   android:numColumns="5" android:background="#FF0000"/>

这是问题的屏幕截图。我的GridView中的红色区域。紫色区域是我的ImageViews。显示的图像是一个简单的蓝色矩形,中心是透明的。图像是45x45像素(但我的应用程序只有30x30像素 - 我稍后会担心)。紫色周围的红色边框是我想要消除的。

alt text

4 个答案:

答案 0 :(得分:67)

感谢大家的建议,但事实证明答案是我们没想到的。额外的像素是由分配给我的GridView的选择器引起的。我猜默认选择器是一个9补丁图像,它周围有一个5像素的边框。当我创建并分配了一个边框较小的9补丁(或者根本没有边框 - 只是一个普通的.png文件)时,我的GridView中的额外空间就消失了。

答案 1 :(得分:0)

您是否尝试将ImageView上的padding和GridView上的horizontalSpacingverticalSpacing设置为0?

答案 2 :(得分:0)

尝试将图像视图的layout_height和layout_width设置为fill_parent。

iv.setLayoutParams(ViewGroup.LayoutParams(ViewGroup.MATCH_PARENT, ViewGroup.MATCH_PARENT));
我相信

会动态地做到这一点。

答案 3 :(得分:0)

对我来说,除了在xml中设置android:columnWidth 属性(例如android:columnWidth="50dp"

之外没有任何帮助