android用户界面编程技巧——如何使用Adapter
2010-12-09 11:04
239 查看
首先我要说明的是这里“android用户编程技巧”系列的文章中所涉及的技术技巧以及讲述方式不是我本人原创。这些技巧是来自2009年google开发者日 (Google Developer Day 2009)上,google公司一位负负责android系统framework层和浏览器开发的一位工程师(很抱歉没有能记住她的名字)的技巧 ,因为是在开发者大会上演讲是分享的,所以很多人称之为官方的技巧。 当然演讲的具体内容大家可以通过网络轻易得到我也会在后期的文章中给出演讲视频的地址和文档下载地址。我这这里写出来主要是想这样的技术人跟多的知 道和使用。过了一年的时间或许这些技巧中有些已经有待更新,那么就让我们一起在这里讨论吧。
重点说演讲中的第一部分——如何使用Adapter。
adapter和listview以及数据源之间的关系
listview相信是大家熟知的一种视图控件了,那么在Adapter相信大家也是一定不会陌生。正如这位是工程师说话Adapter是listview和数据源之间的中间人。 关系如图所示。图片是演讲时所用ppt中的图片。
代码
最后呢,这位工程师对这三种方式进行了一个更新数据的比较,用一般的方法每秒更新8个frame,采用回收机制的方法是每秒27个frame,采用ViewHolder 模式方法每秒36个frame。
更新效率比较图:
三种方式更新效率比较 最后,着这次演讲中一个设计了5个模块的编程技巧,如下:
· Adapter的使用
· 图像和背景
· 更新请求
· 视图和布局
· 内存分配
后续我会陆续将其他部分在这里发布,再次申明这些方法是09年google开发者大会分享的,我不知道为什么这些方法按理来说应该早为我们中国开发者所熟 知,可是我在很多社区中看多有很多朋友还在找出找这些问题的答案。因此我再次将这些技巧整理发布出来,希望更多的朋友在使用搜索引擎的时候可以找到 这些技巧。
重点说演讲中的第一部分——如何使用Adapter。
adapter和listview以及数据源之间的关系
listview相信是大家熟知的一种视图控件了,那么在Adapter相信大家也是一定不会陌生。正如这位是工程师说话Adapter是listview和数据源之间的中间人。 关系如图所示。图片是演讲时所用ppt中的图片。
代码
public View getView(int pos, View convertView, ViewGroup parent){ ViewHolder holder; if (convertView == null) { convertView = mInflater.inflate(R.layout.list_item, null); holder = new ViewHolder(); holder.text = (TextView) convertView.findViewById(R.id.text)); holder.icon = (ImageView) convertView.findViewButId(R.id.icon)); convertView.setTag(holder); } else { holder = (ViewHolder) convertView.getTag(); } holder.text.setText(DATA[pos]); holder.icon.setImageBitmap((pos & 1) == 1 ? mIcon1 : mIcon2); return convertView; }
最后呢,这位工程师对这三种方式进行了一个更新数据的比较,用一般的方法每秒更新8个frame,采用回收机制的方法是每秒27个frame,采用ViewHolder 模式方法每秒36个frame。
更新效率比较图:
三种方式更新效率比较 最后,着这次演讲中一个设计了5个模块的编程技巧,如下:
· Adapter的使用
· 图像和背景
· 更新请求
· 视图和布局
· 内存分配
后续我会陆续将其他部分在这里发布,再次申明这些方法是09年google开发者大会分享的,我不知道为什么这些方法按理来说应该早为我们中国开发者所熟 知,可是我在很多社区中看多有很多朋友还在找出找这些问题的答案。因此我再次将这些技巧整理发布出来,希望更多的朋友在使用搜索引擎的时候可以找到 这些技巧。
相关文章推荐
- android用户界面编程技巧——如何使用Adapter
- android用户界面编程技巧——如何使用Adapter
- android用户界面编程技巧——如何使用Adapter
- Android 编程中,使用静态变量有哪些缺点?应该如何规范使用?
- Android并发编程之如何使用ReentrantReadWriteLock替代synchronized来提高程序的效率
- Android 用户界面编程技巧和设计模式(性能优化)
- 如何制作一个RSS源,并创建小部件免费使用任何编程技巧
- Android并发编程之如何使用ReentrantReadWriteLock替代synchronized来提高程序的效率
- 学习FPGA verilog的心得--编程技巧--如何写代码减少逻辑单元的使用数量
- 编程技巧:如何使用线程
- android如何在BaseAdapter内使用notifyDataSetChanged()方法以及线程的使用
- android用户界面编程技巧——背景和图像的开发技巧
- Android_编程规范与经常使用技巧
- Android中ListView 控件与 Adapter 适配器如何使用?
- Android 用户界面编程技巧
- Android:Native C源码(NDK)如何使用sqlite3进行编程?
- 关于Android JNI 编程如何定位段错误的问题(addr2line的使用)
- android中Thread对于Adapter出现的报错情况的处理以及如何正确使用Spinner与SimpleCurosorAdapter
- 如何搭建Android的开发环境->在unbuntu 10.04 上使用ubuntu的一些技巧(四)
- android开发步步为营之98:android studio使用技巧之一(如何清理不需要的文件)