Android gridview,如何消除网格项之间的差距

时间:2011-09-30 16:00:47

标签: android layout gridview

我正在尝试使用GridView来实现马赛克效果。网格项目都是图像,类似于APIDemo示例中的Gri 2。问题是图像之间总是存在间隙,即使所有填充和间距都设置为0.我是否错过了一些其他设置来消除间隙?我希望图像彼此相邻。

我将列宽设置为120dip。这是我将图像宽度设置为120dip的代码:

mTileWidth = TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, 120, r.getDisplayMetrics());

有问题吗?

谢谢!

5 个答案:

答案 0 :(得分:3)

这是一个非常古老的问题,我只是为了提高我的录取率来回答它:) 最后,我只计算了屏幕宽度并将其除以列数,并将结果用作一个项目的宽度。我想要连续。这解决了问题。 mmmmm5的答案可能是正确的,差距是由android添加的填充,我们只需要绕过它。

答案 1 :(得分:1)

如果你查看Android的Contacts的源代码,就会创建一个自定义的GridView类。快速回顾,有填充等设置。也许,这可以回答你的问题

答案 2 :(得分:1)

还有另一种可行的解决方案。从getView()的适配器中的GridView方法返回视图时,必须按如下方式设置布局参数:

view.setLayoutParams(new GridView.LayoutParams(
    TableLayout.LayoutParams.MATCH_PARENT, 
    TableLayout.LayoutParams.MATCH_PARENT));

答案 3 :(得分:0)

如果适配器中未添加填充,请查看XML。看看android:stretchMode以及android:verticalSpacing和android:horizo​​ntalSpacing。

    <GridView xmlns:android="http://schemas.android.com/apk/res/android" 
        android:id="@+id/gridview"
        android:layout_width="fill_parent" 
        android:layout_height="fill_parent"
        android:columnWidth="14dp"
        android:numColumns="auto_fit"
        android:verticalSpacing="10dp"
        android:horizontalSpacing="10dp"
        android:stretchMode="columnWidth"
        android:gravity="center"
    />

答案 4 :(得分:0)

甚至更简单,在我的单元格的xml中,我将以下参数放在根视图

   <GridView
    android:id="@+id/gridview_type"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:stretchMode="columnWidth"
    android:numColumns="3"
    tools:listitem="@layout/cell_type"
    />

并设置我的gridview:

Dockerfile