GridView不适合屏幕

时间:2016-02-14 21:59:26

标签: java android xml gridview picasso

我正在尝试从Udacity学习android开发。

我正在尝试使用picaso填充网格视图,并尝试找到适合屏幕的图像。

期望的输出应该是这样的。

output required

我得到的输出。

output I am getting

我的xml文件

<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:numColumns="2"
android:gravity="center"
android:stretchMode="columnWidth"
/>

我的适配器类中的getView方法扩展了BaseAdapter。

@Override
public View getView(int position, View convertView, ViewGroup parent) {

    ImageView iImageView;

    if(convertView == null){
        iImageView = new ImageView(mContext);
    }else {
        iImageView = (ImageView) convertView;
    }

    Picasso.with(mContext)
            .load(imageResource[0])
            .into(iImageView);

    iImageView.setLayoutParams(new GridView
            .LayoutParams(GridView.LayoutParams.WRAP_CONTENT
            , GridView.LayoutParams.WRAP_CONTENT));

    Log.v("data", "Height:" + Integer.toString(iImageView.getHeight()));
    Log.v("data", "Width:" + Integer.toString(iImageView.getWidth()));

    return iImageView;
}

我面临的问题是每列之间以及屏幕边框之间都有一个空白区域。我不想要那个。我希望它像我想要的输出。

请帮忙。谢谢。

2 个答案:

答案 0 :(得分:0)

不要使用新的ImageView创建没有设置属性的ImageView,而是尝试为包含ImageView的布局以及有意义的ImageView属性进行充气。例如,您可能希望将android:scaleType设置为“centerCrop”。目前看起来像是缩小图像以适应GridView给出的空间,因为它不是一个完美的契合。

您也可以在ImageView上调用方法来设置各种属性,但我认为在XML布局中表达它可能更好。

答案 1 :(得分:0)

尝试使用简单的线性或相对的自定义布局。为此布局结束集数学父级设置宽度的背景颜色。背景的一些颜色帮助那么多