(转载请说明出处,谢谢)
最近在搞Xamarin.Android 技术框架下如何利用ListView更好的展示网络图片,做的过程中才发现这东西不是一个简单的图片异步加载过程就可以搞定。遇到的问题在此做个思路记载。
思路一:由于没有先验经验。一上来打算自己搞ListView的性能优化问题,结果发现自己做出来的效果不好,尤其是每次一滑动要到服务器上面请求数据,这种真的太恶心。
待解决问题:
(1)关于如何在Xamarin.Android 里面使用异步加载图片
(2)Xamarin.Android异步加载图片错位,重复,图片闪烁现象
(3)Xamarin.Android图片缓存,性能优化,避免不必要的服务器请求数据
思前想后,认识到:为什么要自己造轮子?好,想到这里,心里舒坦了一大半,OK,思路一放弃,转为思路二。
思路二:
1 参考现有App的异步图片加载框架,本次ListView选择主流开源框架Android-Universal-Image-Loader为目标
2 A由于Android-Universal-Image-Loader为Java库,我们要在Xamarin中使用需要Binding库,具体Binding过程可以参考官网
B 其实我知道A对于大家来说没有什么吸引力,大家想要的其实是这个,Gitup上面工程地址,伸手党表示感谢: https://github.com/LukeForder/Xamarin-Bindings-Android-Universal-Image-Loader
3 参考相关文章,进行Xamarin.Android下的代码移植
Android-Universal-Image-Loader框架学习:
http://blog.csdn.net/xiaanming/article/details/26810303#comments
ListView整合:
http://www.tuicool.com/articles/f2aiue
高能预警:
关于图片错位说明:当我们滑动到Item7的时候,由于图片为异步加载,可能刷出来的是item5的图片
解决办法:在Xamarin.Android 中还是采用与Android一样的方式,利用ViewHolder设置Tag
注意:ViewHolder需继承Object基类
亲测Ok,已实现功能,具体代码就不贴了,Android相关的文章里面都写得很清楚了。有什么问题大家可以一起交流。