我的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像素 - 我稍后会担心)。紫色周围的红色边框是我想要消除的。
答案 0 :(得分:67)
感谢大家的建议,但事实证明答案是我们没想到的。额外的像素是由分配给我的GridView的选择器引起的。我猜默认选择器是一个9补丁图像,它周围有一个5像素的边框。当我创建并分配了一个边框较小的9补丁(或者根本没有边框 - 只是一个普通的.png文件)时,我的GridView中的额外空间就消失了。
答案 1 :(得分:0)
您是否尝试将ImageView上的padding
和GridView上的horizontalSpacing
和verticalSpacing
设置为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"
)