1.图片异步加载: (1)处理图片的方式: 如果ListView中自定义的Item中有涉及到大量图片的,一定要对图片进行细心的处理,因为图片占的内存是 ListView 项中最头疼的,处理图片的方法大致有以下几种: ①.不要直接拿路径就去循环 BitmapFactory.decodeFile:使用 Options 保存图片大小.不要加载图片到内存去. ②.对图片一定要经过边界压缩尤其是比较大的图片,如果你的图片是后台服务器处理好的那就不需要了. ③.在 ListView 中取图片时也不要直接拿个…
1.图片异步加载: (1)处理图片的方式: 如果ListView中自定义的Item中有涉及到大量图片的,一定要对图片进行细心的处理,因为图片占的内存是 ListView 项中最头疼的,处理图片的方法大致有以下几种: ①.不要直接拿路径就去循环 BitmapFactory.decodeFile:使用 Options 保存图片大小.不要加载图片到内存去. ②.对图片一定要经过边界压缩尤其是比较大的图片,如果你的图片是后台服务器处理好的那就不需要了. ③.在 ListView 中取图片时也不要直接拿个…
1. 相信大家都知道Android进程间通信方式很多,比如AIDL.Messenger等等,接下来我就总结一下这些IPC方式优缺点. 2. IPC方式的优缺点和适用场景 3. 附加:使用Intent实现跨进程通信 Intent分为两种,一种是显式Intent,只适合在同一进程内的不同组件之间通信,例如 new Intent(this,Target.class). 另外一种是隐式Intent,在AndroidMainifest.xml中注册,一般可以用户跨进程通信,例如new Intent(Str…
Messenger可以理解为一个是用于发送消息的一个类用法也很多,这里主要分析一下再跨进程的情况下Messenger的实现流程与源码分析.相信结合前面两篇关于aidl解析文章能够更好的对aidl有一个认识.(Android进阶笔记:AIDL内部实现详解 (一).Android进阶笔记:AIDL内部实现详解 (二)) 用法说明 先来看一下Messenger在跨进程通讯时的使用方法,代码如下: Service的代码 //用来传递Messenger中IMessenger public class Se…
接着上一篇分析的aidl的流程解析.知道了aidl主要就是利用Ibinder来实现跨进程通信的.既然是通过对Binder各种方法的封装,那也可以不使用aidl自己通过Binder来实现跨进程通讯.那么这篇博客就主要就写一下通过上篇(Android进阶笔记:AIDL详解(一))总结的知识来自己实现跨进程通讯从而更加透彻的了解aidl的核心逻辑. 首先上一篇博客(Android进阶笔记:AIDL详解(一))中总结出一个结论————“onTransact方法是提供给server端用的,transact…
ListView.ListActivity ==> ListView以垂直列表的形式显示所有列表项. 创建ListView的方式: 1.直接使用ListView创建 2.Activity继承ListAcivity ListView与AutoCompleteTextView.Spinner类似,都需要一个供显示的列表项——Adapter 都是采用Adapter提供数据设计——MVC的典范应用,此时的 ListView与AutoCompleteTextView.Spinner只是View部分(实际还…
一.ListView内容变化后,动态刷新的步骤(全局刷新): (1)更新适配器Adapter数据源:(不要使用匿名内部类) (2)调用适配器Adapter的刷新方法notifyDataSetChanged(): 二.ListView中的单个item的数据变化后,动态刷新步骤(局部刷新): 1.引言 有个下载模块,因为可能同时下载好几个数据,所以用的listview展示所有正在下载的内容.因为下载进度要实时更新,所以要不停的调用notifyDateSetChanged刷新数据.这样会不停的重新绘制…
一.ListView内容变化后,动态刷新的步骤(全局刷新): (1)更新适配器Adapter数据源:(不要使用匿名内部类) (2)调用适配器Adapter的刷新方法notifyDataSetChanged(): 二.ListView中的单个item的数据变化后,动态刷新步骤(局部刷新): 1.引言 有个下载模块,因为可能同时下载好几个数据,所以用的listview展示所有正在下载的内容.因为下载进度要实时更新,所以要不停的调用notifyDateSetChanged刷新数据.这样会不停的重新绘制…
1. 首先思考一个问题ListView如何才能提高效率 ? 当convertView为空时候,用setTag()方法为每个View绑定一个存放控件的ViewHolder对象.当convertView不为空,重复利用已经创建的View的时候,使用getTag()方法获取绑定的ViewHolder对象,这样就避免了findViewById对控件的层层查询,而是快速定位到控件. 鉴于上面分析,可以通过如下方法对ListView进行性能优化: (1)复用convertView,使用历史的View,提高效…
ListView可以显示多种类型的条目布局,这里写显示两种布局的情况,其他类似. 1. 这是MainActivity,MainActivity的布局就是一个ListView,太简单了这里就不写了,直接来到MainActivity,如下: public class MainActivity extends Activity { private ListView lv; private List<People> lists; @Override protected void onCreate(Bu…