0x00
优化 ≈ 时空转换(时间和空间)
时间换空间
时间换时间
空间换时间
控件换空间
在我们的算法中就经常遇见这种情况,如果降低算法的时间复杂度,那势必会加大空间的消耗,反之亦然
0x01
方式一:
public View getView(int position, View convertView, ViewGroup parent) {
View view = View.inflate(MainActivity.this, R.layout.item_gridview, null);
ImageView iv_icon = (ImageView) view.findViewById(R.id.item_iv_icon);
TextView tv_title = (TextView) view.findViewById(R.id.item_tv_title);
TextView tv_desc = (TextView) view.findViewById(R.id.item_tv_desc);
Bean bean = list.get(position);
iv_icon.setImageResource(bean.getIcon());
tv_title.setText(bean.getTitle());
tv_desc.setText(bean.getDesc());
return view;
}
方式二:
public View getView(int position, View convertView, ViewGroup parent) {
if(convertView == null){
convertView = View.inflate(MainActivity.this, R.layout.item_gridview, null);
}
ImageView iv_icon = (ImageView) convertView.findViewById(R.id.item_iv_icon);
TextView tv_title = (TextView) convertView.findViewById(R.id.item_tv_title);
TextView tv_desc = (TextView) convertView.findViewById(R.id.item_tv_desc);
Bean bean = list.get(position);
iv_icon.setImageResource(bean.getIcon());
tv_title.setText(bean.getTitle());
tv_desc.setText(bean.getDesc());
return convertView;
}
方式三:
public View getView(int position, View convertView, ViewGroup parent) {
ViewHolder holder;
if(convertView==null){
//Adapter的fast way
convertView = View.inflate(MainActivity.this, R.layout.item_gridview, null);
holder = new ViewHolder();
holder.iv_icon = (ImageView) convertView.findViewById(R.id.item_iv_icon);
holder.tv_title = (TextView) convertView.findViewById(R.id.item_tv_title);
holder.tv_desc = (TextView) convertView.findViewById(R.id.item_tv_desc);
convertView.setTag(holder);
}else{
holder = (ViewHolder) convertView.getTag();
}
Bean bean = list.get(position);
holder.iv_icon.setImageResource(bean.getIcon());
holder.tv_title.setText(bean.getTitle());
holder.tv_desc.setText(bean.getDesc());
return convertView;
}
//持有者
static private class ViewHolder{
ImageView iv_icon;
TextView tv_title;
TextView tv_desc;
}
0x02
三种方式性能对比:
0xff
参考:
http://blog.csdn.net/amber_leaf/article/details/53843220