我在2列网格视图中定位了大量具有相同宽度和高度的图像。我希望垂直间距是20dp,但是增加了额外的空间。
编辑:看起来垂直空间是由于我的方形图像要大而合适。它们太宽而无法放入列中,因此Android会将其缩小。额外的垂直空间显示了如果不按比例缩小图像的高度。看起来当图像自动缩小时,网格中ImageView的垂直尺寸保持不变,增加了空白区域。
用较小的图像替换它们会使问题消失。仍然有一种方法可以使这种布局正常工作,即使是超大的图像吗?
这是我的布局:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="0dp"
android:paddingLeft="0dp"
android:paddingRight="0dp"
android:paddingTop="0dp"
tools:context=".TargetCollectionActivity" >
<Button
android:layout_width="fill_parent"
android:layout_height="100dp"
android:text="Start Over"
android:textSize="40dp"
android:background="#FFFFFF"
android:id="@+id/start_over_button"
android:layout_alignParentBottom="true"
android:layout_centerHorizontal="true" />
<GridView
android:id="@+id/sh_grid_view"
android:layout_above="@+id/start_over_button"
android:layout_width="match_parent"
android:layout_height="fill_parent"
android:verticalSpacing="20dp"
android:horizontalSpacing="20dp"
android:numColumns="2"
android:stretchMode="columnWidth"
android:layout_centerHorizontal="true"
android:layout_centerVertical="true">
</GridView>
</RelativeLayout>
这是创建视图的适配器:
private class TargetImageCollectionAdapter extends BaseAdapter {
private Context mContext;
public TargetImageCollectionAdapter(Context c) {
mContext = c;
}
@Override
public int getCount() {
return application.getHunt().getTargetList().size();
}
@Override
public Object getItem(int position) {
return application.getHunt().getTargetList().get(position);
}
@Override
public long getItemId(int position) {
return position;
}
@Override
public View getView(final int position, View convertView, ViewGroup parent) {
TargetItem target = application.getHunt().getTargetList().get(position);
// This method returns an ImageView constructed around a BitMap loaded
// from the Android filesystem
ImageView view application.getRemoteAssetCache().getImageByName("target"+target.getId());
return view;
}
}
答案 0 :(得分:0)
似乎垂直空间是由于我的方形图像要大而合适。它们太宽而无法放入列中,因此Android会将其缩小。额外的垂直空间显示了如果不按比例缩小图像的高度。看起来当图像自动缩小时,网格中ImageView的垂直尺寸保持不变,增加了空白区域。