目前我知道的方式有:
局部刷新listview,也就是手动调用listview的getview方法
用tag标识当前图片的url,如果判断新的数据和老的数据一样,就不进行刷新
启动线程来做耗时的操作,比如加载图片,先用空白图片留空
在初始化时初始监听器对象,不重复创建listener
在item中避免用widget做,减少计算
避免item中采用复杂布局,如果遇到很复杂的建议将一个item分开做
常规就是你讲的这些了.
Facebook有个拆分item的方案(大概就是你说的6)
自备梯子
https://code.facebook.com/posts/879498888759525/fast-rendering-news-feed-on-android/
没梯子可以看这个
http://blog.aaapei.com/article/2015/02/facebookxin-wen-ye-listviewyou-hua
Instagram有个预渲染的文本的方案
http://instagram-engineering.tumblr.com/post/114508858967/improving-comment-rendering-on-android
高速滑动时不加载图片。
图片文件的磁盘缓存。
图片文件的内存弱引用缓存。
图片对象的内存弱引用缓存。
图片的淡入加载。
ListView没什么牛逼的。
可以直接使用RecyclerView,RecyclerView提供了原生的局部刷新功能