gridview优化

转载 2015年07月09日 12:47:10

ListView和GridView是我们经常会使用的控件,所以它们的效率是一个非常重要的事情,如果我们滑动的时候,会出现停顿的现在,那么,这次是一个非常不好的体验。所以我们有必要要对这些控件进行优化。

其实,我们用这些控件的时候,都是通过adapter来进行给这些控件添加item的,所以我们的优化也就是在adapter里面进行的。其实这个优化方法也很简单,就是在进行view的绘制的时候,我们判断一下,是不是已经绘制过啦,如果绘制过了,那么就使用原来的,如果没有绘制过,那么就重新绘制。直接上代码,大家可以与我们之前写的那个adapter比较一下有什么不同


  1. @Override
  2.         public View getView(int position, View convertView, ViewGroup parent)
  3.         {
  4.                 //convertView 相当于缓存一样,只要我们判断一下它是不是为null,就可以知道现在这个view有没有绘制过出来
  5.                 //如果没有,那么就重新绘制,如果有,那么就可以使用缓存啦,这样就可以大大的节省view绘制的时间了,进行了优化,使ListView更加流畅
  6.                 MainViews views;
  7.                 View view;
  8.                 if(convertView == null)
  9.                 {
  10.                         views = new MainViews();
  11.                         view = inflater.inflate(R.layout.main_item, null);
  12.                         views.imageView = (ImageView) view.findViewById(R.id.iv_main_icon);
  13.                         views.textView = (TextView) view.findViewById(R.id.tv_main_name);
  14.                         views.imageView.setImageResource(ICONS[position]);
  15.                         views.textView.setText(NAMES[position]);
  16.                        
  17.                         view.setTag(views);
  18.                 }
  19.                 else
  20.                 {
  21.                         view = convertView;
  22.                         views = (MainViews) view.getTag();
  23.                         views.imageView = (ImageView) view.findViewById(R.id.iv_main_icon);
  24.                         views.textView = (TextView) view.findViewById(R.id.tv_main_name);
  25.                         views.imageView.setImageResource(ICONS[position]);
  26.                         views.textView.setText(NAMES[position]);
  27.                 }
  28.                        
  29.                 if(position == 0)
  30.                 {
  31.                         String name = sp.getString("lostName", "");
  32.                         if(!name.equals(""))
  33.                         {
  34.                                 views.textView.setText(name);
  35.                         }
  36.                 }
  37.                
  38.                 return view;
  39.         }
  40.        
  41.         //==================================================================================
  42.        
  43.         //一个存放所有要绘制的控件的类
  44.         private class MainViews
  45.         {
  46.                 ImageView imageView;
  47.                 TextView textView;
  48.         }

Android ListView、GridView等性能优化

1.采用ViewHolder并避免在getView中执行耗时操作2.根据列表的滑动状态来控制任务的执行频率@Override public void onScrollStateChanged...

GridView性能优化笔记

最近项目中的一个复杂的GridView在测试们的狂轰滥炸下,不堪重负,频频出现ANR,这不得不让我重新审视自己原创的引以为傲的View Item布局,结合一些网上的优化方案,大概有如下几个优化方式: ...

Android-GridView实例(优化列表数据加载,图片圆角,LruCache优化)

1.回顾   上篇学习了,gridview 加载数据;图片请求,LruCache 缓存实现;   上篇遗留问题:     (1)优化列表数据加载:当滑动到列表哪里,加载这里的图片;     (...

android ListView GridView Gallery 适配器 性能优化

之前码控件太多,由于项目时间问题,也就很少考虑到优化的一些细节问题,今天就简单些了个关于ListView控件对在使用适配器时的优化效果:好了直接贴图:先看下对比效果: 不判断converView为空...

ListView与GridView优化

优化的问题: 1、怎么去优化ListVIew,怎么去优化GridView 2、怎么优化java虚拟机 所有的优化问题: 1、时间换时间(延时加载) 2、空间换时间...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:gridview优化
举报原因:
原因补充:

(最多只允许输入30个字)