我正在尝试使用GridView来实现马赛克效果。网格项目都是图像,类似于APIDemo示例中的Gri 2。问题是图像之间总是存在间隙,即使所有填充和间距都设置为0.我是否错过了一些其他设置来消除间隙?我希望图像彼此相邻。
我将列宽设置为120dip。这是我将图像宽度设置为120dip的代码:
mTileWidth = TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, 120, r.getDisplayMetrics());
有问题吗?
谢谢!
答案 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:horizontalSpacing。
<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