Android实现ListView异步加载的方法(改进版)
程序员文章站
2024-03-06 10:23:43
本文实例讲述了android实现listview异步加载的方法。分享给大家供大家参考,具体如下:
@override
public view getvie...
本文实例讲述了android实现listview异步加载的方法。分享给大家供大家参考,具体如下:
@override public view getview(int position, view convertview, viewgroup parent) { ………… viewholder vh = null; ………… vh.mimageview.settag(position); vh.mthumb.setimagedrawable(imageloader.loaddrawable(position, new imagecallback() { public void imageloaded(drawable imagedrawable, int position) { imageview imageviewbytag = (imageview) mlist.findviewwithtag(position); if (imageviewbytag != null) { imageviewbytag.setimagedrawable(imagedrawable); } } })); } private static lrucache<long, drawable> mcache = new lrucache<long, drawable>(100); public class asyncimageloader { public drawable loaddrawable(final int position, final imagecallback callback){ drawable d = null; d = mcache.get(position); if (d == null) { final handler handler=new handler(){ @override public void handlemessage(message msg) { callback.imageloaded((drawable) msg.obj, position); } }; thread t = new thread(){ public void run() { drawable drawable = utils.getdrawable(mcontext, position, 1, mmydefaulticon); drawable value = mcache.get(position);//cache有可能已经被更改了,所以重新取一次 if (value == null) { mcache.put(position, drawable); } else { drawable = value; } handler.sendmessage(handler.obtainmessage(0,drawable)); }; }; t.setpriority(thread.min_priority); t.start(); return mmydefaulticon; } else { return d; } } } public interface imagecallback{ public void imageloaded(drawable imagedrawable, int position); }
这个是在前面一篇基础上修改的。主要为了加入lrucache
后来发现,这种方法要不停的开辟新的线程,效率并不是很高。最后改为加入一后台线程,不停从后进先出队列中取出任务进行处理。
更多关于android相关内容感兴趣的读者可查看本站专题:《android视图view技巧总结》、《android编程之activity操作技巧总结》、《android操作sqlite数据库技巧总结》、《android操作json格式数据技巧总结》、《android数据库操作技巧总结》、《android文件操作技巧汇总》、《android编程开发之sd卡操作方法汇总》、《android开发入门与进阶教程》、《android资源操作技巧汇总》及《android控件用法总结》
希望本文所述对大家android程序设计有所帮助。
推荐阅读
-
Android实现ListView异步加载的方法(改进版)
-
Android实现Listview异步加载网络图片并动态更新的方法
-
Android实现在一个activity中添加多个listview的方法
-
Android RecyclerView 上拉加载更多及下拉刷新功能的实现方法
-
在Android的应用中实现网络图片异步加载的方法
-
Android实现带有边框的ListView和item的方法
-
Android开发ListView中下拉刷新上拉加载及带列的横向滚动实现方法
-
Android实现加载时提示“正在加载,请稍后”的方法
-
Android实现加载时提示“正在加载,请稍后”的方法
-
Android实现带有边框的ListView和item的方法