理论教育 ListView异步加载图片的优化建议

ListView异步加载图片的优化建议

时间:2023-06-19 理论教育 版权反馈
【摘要】:ListView异步加载图片是非常实用的方法,接下来通过一个具体实例的实现,来说明ListView异步加载图片优化的方法。第二个辅助类文件ViewCache.java的演示代码如下。ViewCache是辅助获取Adapter的子元素布局。再看实现ListView的Adapter,对应文件ImageAndTextListAdapter.java的代码如下。在上述代码中有一个技巧:imageView.setTag,setTag是存储数据的,这样是为了保证在回调函数时,listView用于更新自己对应的item。这样ListView就通过异步加载的方式加载了指定的图片,实现了优化的目的,提高了效率。执行效果如图6-2所示。

ListView异步加载图片的优化建议

ListView异步加载图片是非常实用的方法,接下来通过一个具体实例的实现,来说明ListView异步加载图片优化的方法。

978-7-111-51616-3-Part02-346.jpg

(1)文件AsyncImageLoader.java实现了主方法,代码如下:

978-7-111-51616-3-Part02-347.jpg

978-7-111-51616-3-Part02-348.jpg

上述代码是实现异步获取图片的主方法,SoftReference是软引用,目的是更好的实现系统回收变量,重复的统一资源定位符(Uniform Resource Locator,URL)直接返回已有的资源,实现回调函数,让数据成功后,更新到UI线程

(2)接下来看如下两个辅助类文件,第一个辅助类文件ImageAndText.java的演示代码如下。

978-7-111-51616-3-Part02-349.jpg

第二个辅助类文件ViewCache.java的演示代码如下。

978-7-111-51616-3-Part02-350.jpg

ViewCache是辅助获取Adapter的子元素布局。(www.daowen.com)

(3)再看实现ListView的Adapter,对应文件ImageAndTextListAdapter.java的代码如下。

978-7-111-51616-3-Part02-351.jpg

978-7-111-51616-3-Part02-352.jpg

在上述代码中有一个技巧:imageView.setTag(imageUrl),setTag是存储数据的,这样是为了保证在回调函数时,listView用于更新自己对应的item。

(4)最后看布局文件main.xml,代码如下。

978-7-111-51616-3-Part02-353.jpg

这样ListView就通过异步加载的方式加载了指定的图片,实现了优化的目的,提高了效率。执行效果如图6-2所示。

978-7-111-51616-3-Part02-354.jpg

图6-2 执行效果

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈