GridView 子项长度和宽度一样


下面是gridview 控件,每行放置四个,因此用宽度除4. 下面展现出来的的界面就显的比较美观。

public class HotSearchAdapter extends BaseAdapter {

	private LayoutInflater inflater;

	private List<App> infos;

	private Context context;



	public HotSearchAdapter(Context context, List<App> infos) {

		super();

		this.infos = infos;

		this.context = context;

		this.inflater = LayoutInflater.from(context);

		initWin();

	}



	@Override

	public int getCount() {

		if (infos != null && infos.size() > 0) {

			return infos.size();

		}

		return 0;

	}



	@Override

	public Object getItem(int position) {

		if (infos != null && infos.size() > 0) {

			return infos.get(position);

		}

		return null;

	}



	@Override

	public long getItemId(int position) {

		return position;

	}



	@Override

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

		DataHolder holder;

		if (convertView == null) {

			convertView = inflater.inflate(R.layout.hot_search_gv_item, null);

			holder = new DataHolder();

			holder.iv_image = (ImageView) convertView.findViewById(R.id.iv_image);

 

			convertView.setTag(holder);

		} else {

			holder = (DataHolder) convertView.getTag();

		}



		App mApp = infos.get(position);



		int pad = (int) (2*density);

		convertView.setPadding(pad, pad, pad, pad);

		convertView.setLayoutParams(new AbsListView.LayoutParams(widthPixels/4,widthPixels/4));

		return convertView;

	}



	public final class DataHolder {

		public ImageView iv_image;

	}

	

	private void initWin(){

		WindowManager manager = (WindowManager) context.getSystemService(Context.WINDOW_SERVICE);

		DisplayMetrics metrics = new DisplayMetrics();

		manager.getDefaultDisplay().getMetrics(metrics);

		density = metrics.density;

		widthPixels = metrics.widthPixels;

	}

	

	private float density;

	private int widthPixels;

}

 
  

你可能感兴趣的:(GridView)