我正在尝试从Udacity学习android开发。
我正在尝试使用picaso填充网格视图,并尝试找到适合屏幕的图像。
期望的输出应该是这样的。
我得到的输出。
我的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;
}
我面临的问题是每列之间以及屏幕边框之间都有一个空白区域。我不想要那个。我希望它像我想要的输出。
请帮忙。谢谢。
答案 0 :(得分:0)
不要使用新的ImageView创建没有设置属性的ImageView,而是尝试为包含ImageView的布局以及有意义的ImageView属性进行充气。例如,您可能希望将android:scaleType设置为“centerCrop”。目前看起来像是缩小图像以适应GridView给出的空间,因为它不是一个完美的契合。
您也可以在ImageView上调用方法来设置各种属性,但我认为在XML布局中表达它可能更好。
答案 1 :(得分:0)
尝试使用简单的线性或相对的自定义布局。为此布局结束集数学父级设置宽度的背景颜色。背景的一些颜色帮助那么多