打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
android平板上的GridView视图缓存优化
 public long getItemId(int position) {
  return position;
 }
 
 List<Integer> lstPosition=new ArrayList<Integer>();
 List<View> lstView=new ArrayList<View>();
 
 List<Integer> lstTimes= new ArrayList<Integer>();
 long startTime=0;
 public View getView(int position, View convertView, ViewGroup parent) {
  startTime=System.nanoTime();
  
  if (lstPosition.contains(position) == false) {
   if(lstPosition.size()>75)//这里设置缓存的Item数量
   {
    lstPosition.remove(0);//删除第一项
    lstView.remove(0);//删除第一项
   }
   convertView = inflater.inflate(R.layout.item, null);
   TextView text = (TextView) convertView.findViewById(R.id.itemText);
   ImageView icon = (ImageView) convertView.findViewById(R.id.itemImage);
   text.setText(mItems.get(position).itemTitle);
   new AsyncLoadImage().execute(new Object[] { icon,mItems.get(position).itemImageURL });
   
   lstPosition.add(position);//添加最新项
   lstView.add(convertView);//添加最新项
  } else
  {
   convertView = lstView.get(lstPosition.indexOf(position));
  }
  
  int endTime=(int) (System.nanoTime()-startTime);
  lstTimes.add(endTime);
  if(lstTimes.size()==10)
  {
   int total=0;
   for(int i=0;i<lstTimes.size();i++)
    total=total+lstTimes.get(i);
 
   Log.e("10个所花的时间:" +total/1000 +" μs",
     "所用内存:"+Runtime.getRuntime().totalMemory()/1024 +" KB");
      lstTimes.clear();
  }
  
  return convertView;
 }
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
Android ListView 隔行重复选中的问题
Spinner的三种用法
android-BaseAdapter中的notifyDataSetChanged()
ListView点击checkbox其他checkbox也被同时选中的问题
ListView的性能优化之convertView和viewHolder
让你彻底掌握RecyclerView的缓存机制
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服