为什么我的Android GridView附近有额外的像素?

我的Android应用程序中有一个GridView,里面有很多ImageView。 我的屏幕上的空间是有限的,我希望图像占用尽可能多的可用空间。 不幸的是,GridView总是在ImageViews的外边缘留下5个像素的空屏幕空间(ImageViews之间的空间被设置为水平/垂直间距并且行为正确)。 空的空间就像ImageViews周围的边缘,但我无法摆脱它。 有谁知道是什么原因造成这个“边界”,我怎么能摆脱它(或至less使其更小)? 谢谢。

更新:我通过在Adapter类的getView()方法中扩展.xml文件来创buildImageView。 这里是我膨胀的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。 正在显示的图像是一个简单的蓝色矩形,透明的中心。 图像是45×45像素(但在我的应用程序只有30×30像素 – 我会后面担心)。 紫色周围的红色边框是我想要消除的。

替代文字

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

你有没有尝试在ImageView上设置padding ,并将GridView上的horizontalSpacingverticalSpacing设置为0?

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

 iv.setLayoutParams(ViewGroup.LayoutParams(ViewGroup.MATCH_PARENT, ViewGroup.MATCH_PARENT)); 

我相信会dynamic地做到这一点。

除了在xml中设置android:columnWidth 属性 (例如android:columnWidth="50dp" ),没有什么帮助。