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.         }

GridView性能优化笔记

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

android listview gridview 性能优化

有关图片加载的一些记录。这里针对的主要是会有大量的AdapterView需要快速滚动加载图片情况 一些如 异步加载,文件缓存,LruCache内存缓存Bitmap等的常规的通用方式就不在这里说,这些...
  • Avenleft
  • Avenleft
  • 2014年02月12日 09:56
  • 8085

Android ListView、GridView等性能优化

1.采用ViewHolder并避免在getView中执行耗时操作2.根据列表的滑动状态来控制任务的执行频率@Override public void onScrollStateChanged...
  • sanyang730
  • sanyang730
  • 2016年05月14日 16:34
  • 1165

ListView和GridView列表滑动卡顿问题的优化方法汇总

ListView和GridView列表在滑动时出现卡顿现象困扰了很多开发者,下面我们来总结一下优化方案: 1. 使用ViewHolder在adapter的getView方法中对convertView...
  • whsdu929
  • whsdu929
  • 2016年09月28日 14:53
  • 3591

android gridView屏幕适配,以及GridView的各种属性

** * 获取屏幕宽度 */ public static int getScreenWidth(Context context) { WindowManager manager = (Wi...
  • ITzhongzi
  • ITzhongzi
  • 2016年07月05日 11:50
  • 1222

弱引用的场景——解决android gridView加载大量图片的性能问题

android相册需求中,用gridView来做发现一个问题,性能太差。使用中发现,它必须等所有的图片加载完成,才会一次性显示出来。而在这期间会一直黑屏。               另外附带再说一...
  • guduyishuai
  • guduyishuai
  • 2017年01月19日 15:10
  • 782

GRIDVIEW 优化

1、无数据依然显示表头    // 参数:所要绑定的GridView      所要绑定的数据集      public void BindNoRecords(GridView gridView, D...
  • tq84020519
  • tq84020519
  • 2009年08月13日 22:39
  • 580

Android关于GridView加载图片的简单使用(使用Glide不卡顿)

安卓开发中,对于图片的处理是非常常见的,这里简单介绍gridview加载图片时所使用的的一些技巧。 一、众所周知,加载图片时会消耗很大的内存空间,这里我们使用谷歌推荐的一个库,用于处理图片的加载(官...
  • Leven_Martin
  • Leven_Martin
  • 2017年03月28日 10:47
  • 1170

Android自定义adapter优化之ViewHolder

一般我们在写自定义adapter时,一般会继承BaseAdapter,其中会重写一个方法就是getView,让我们先看一下这个重写的方法刚出来的时候的参数。 @Override public Vie...
  • u013926110
  • u013926110
  • 2015年02月07日 23:52
  • 1604

ListView与GridView优化

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

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