Android GridView添加垂直间距

时间:2014-02-25 23:28:40

标签: android android-gridview

我在2列网格视图中定位了大量具有相同宽度和高度的图像。我希望垂直间距是20dp,但是增加了额外的空间。

编辑:看起来垂直空间是由于我的方形图像要大而合适。它们太宽而无法放入列中,因此Android会将其缩小。额外的垂直空间显示了如果不按比例缩小图像的高度。看起来当图像自动缩小时,网格中ImageView的垂直尺寸保持不变,增加了空白区域。

用较小的图像替换它们会使问题消失。仍然有一种方法可以使这种布局正常工作,即使是超大的图像吗?

rendered screen

这是我的布局:

<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;
    }

}

1 个答案:

答案 0 :(得分:0)

似乎垂直空间是由于我的方形图像要大而合适。它们太宽而无法放入列中,因此Android会将其缩小。额外的垂直空间显示了如果不按比例缩小图像的高度。看起来当图像自动缩小时,网格中ImageView的垂直尺寸保持不变,增加了空白区域。