设置Gridview的水平间距,使Gridview布局水平充满屏幕

今天想实现一个根据Gridview的item布局大小,设置Gridview的水平间距,使Gridview布局能水平充满屏幕,我们需要实现的效果是,用户如果刚开始没有选择上传截图的时候,是需要显示下图的照相机图片的,实现效果图如下:

设置Gridview的水平间距,使Gridview布局水平充满屏幕

本来想动态计算Gridview的宽度和item的宽度,然后取差/2来设置Gridview的水平间距,效果不理想。

后想到Gridview有个属性android:stretchMode,可以用来设置Gridview中的条目以什么缩放模式去填充剩余空间,可选值为:none、spacingWidth、columnWidth、spacingWidthUniform,所以决定通过stretchMode属性来实现上面的效果。

<GridView
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:numColumns="4"
    android:scrollbars="none"
    android:verticalSpacing="10dp"
    android:columnWidth="68dp"
    android:stretchMode="spacingWidth"/>

注意:因为要先显示上图的照相机图片,所以其中有一个android:columnWidth属性需要配合android:stretchMode属性才能显示出来,要不然照相机图片没办法显示(原因我还不知道,先实现了效果设置Gridview的水平间距,使Gridview布局水平充满屏幕),这里我设置的跟我的item布局的宽高是一样的,就是68dp,如果设置的跟item宽高不一致,布局会往中间压缩,效果大家可以试试。