在使用GridView展示图片时,由于图片的大小不尽相同,导致在显示的时候会看起来非常不整齐,所以我们需要让其统一一个尺寸。
我们首先在onCreate方法中获取设备的屏幕分辨率:
Display display = getWindowManager().getDefaultDisplay();
mScreenHeight= display.getHeight();
mScreenWidth = display.getWidth();
之后再GridView的adapter的getView方法中进行配置
@Override
public View getView(final int position, View convertView, ViewGroup parent) {
final ViewHolder holder;
if (convertView == null) {
convertView = inflater.inflate(R.layout.imagelist_item, null);
holder = new ViewHolder();
holder.item_Image = (ImageView) convertView.findViewById(R.id.ImageList_item);
convertView.setTag(holder);
} else {
holder = (ViewHolder) convertView.getTag(); //若convertView不为null 则说明之前对其绑定过 只需要重新拿出来即可
}
//配置数据
//设置item的格式
ViewGroup.LayoutParams para = holder.item_Image.getLayoutParams();
para.width = (mScreenWidth-20)/3;//一屏显示3列
holder.item_Image.setLayoutParams(para);
return convertView;
}
private final class ViewHolder {
private ImageView item_Image;
}
其中在image_item.xml中需要将scaleType设为fitXY
<ImageView
android:id="@+id/ImageList_item"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:scaleType="fitXY"
/>