Android ListView适配器(Adapter)优化方法详解

Android ListView适配器(Adapter)优化方法详解,第1张

概述AndroidListView的优化,在做Android项目的时候,在用到ListView界面及数据显示,这个时候如果资源过大,对项目来说,用户体验肯定是不好的,这里就对如何优化做了详细介绍:

AndroID ListVIEw的优化,在做AndroID项目的时候,在用到ListVIEw 界面及数据显示,这个时候如果资源过大,对项目来说,用户体验肯定是不好的,这里就对如何优化做了详细介绍:

Adapter的作用就是ListVIEw界面与数据之间的桥梁,当列表里的每一项显示到页面时,都会调用Adapter的getVIEw方法返回一个VIEw。想过没有? 在我们的列表有1000000项时会是什么样的?是不是会占用极大的系统资源?

ListVIEw的Adapter的作用如下图所示:

先看看下面的代码:

public VIEw getVIEw(int position,VIEw convertVIEw,VIEwGroup parent) {VIEw item = mInflater.inflate(R.layout.List_item_icon_text,null);((TextVIEw) item.findVIEwByID(R.ID.text)).setText(DATA[position]);((ImageVIEw) item.findVIEwByID(R.ID.icon)).setimageBitmap((position & 1) == 1 ? mIcon1 : mIcon2);return item;}

怎么样?如果超过1000000项时,后果不堪设想!您可千万别这么写!

我们再来看看下面的代码:

public VIEw getVIEw(int position,VIEwGroup parent) {if (convertVIEw == null) {convertVIEw = mInflater.inflate(R.layout.item,null);}((TextVIEw) convertVIEw.findVIEwByID(R.ID.text)).setText(DATA[position]);((ImageVIEw) convertVIEw.findVIEwByID(R.ID.icon)).setimageBitmap((position & 1) == 1 ? mIcon1 : mIcon2);return convertVIEw;}

怎么样,上面的代码是不是好了很多?系统将会减少创建很多VIEw。性能得到了很大的提升。

还有没有优化的方法呢? 答案是肯定的:

public VIEw getVIEw(int position,VIEwGroup parent) {VIEwHolder holder;if (convertVIEw == null) {convertVIEw = mInflater.inflate(R.layout.List_item_icon_text,null);holder = new VIEwHolder();holder.text = (TextVIEw) convertVIEw.findVIEwByID(R.ID.text);holder.icon = (ImageVIEw) convertVIEw.findVIEwByID(R.ID.icon);convertVIEw.setTag(holder);} else {holder = (VIEwHolder) convertVIEw.getTag();}holder.text.setText(DATA[position]);holder.icon.setimageBitmap((position & 1) == 1 ? mIcon1 : mIcon2);return convertVIEw;}static class VIEwHolder {TextVIEw text;ImageVIEw icon;}

怎么样?会不会又给您的系统带来很大的提升呢?看看下面三种方式的性能对比图您就知道了!

感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!

总结

以上是内存溢出为你收集整理的Android ListView适配器(Adapter)优化方法详解全部内容,希望文章能够帮你解决Android ListView适配器(Adapter)优化方法详解所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1147757.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-31
下一篇 2022-05-31

发表评论

登录后才能评论

评论列表(0条)

保存