这种问题的首要原因是放置的图片格式大小不同。
我们可以通过不同的item布局观察其中的变化
gridview的layout如下
<linearlayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical">
<gridview
android:id="@ id/grid_1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:numcolumns="2"
/>
首先贴一下正常效果:
1.wrap_content
这种必会出问题
<?xml version="1.0" encoding="utf-8"?>
<linearlayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<imageview
android:id="@ id/pic"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_margin="10dp"
/>
</linearlayout>
效果就是下图,整的跟瀑布流一样
2.仅设置item中imageview的scaletype
根据不同的设置,有不同的表现。
fitcenter 无变化
fitxy|center|centercrop 间距问题能够解决,但同时图片会变形且item长度过长
3.设置imageview为固定长度300dp
显示正常。
结论:我们从正常效果图可以看到,第二张图片的宽度与其他图片有显著区别。
因此,在gridview中尽量放的图片格式大小相同,可以减少一些问题的出现。