- 浏览: 46559 次
- 性别:
- 来自: 广州
最新评论
-
endual:
项目运行起来,图片会乱的。
Android实现ListView异步加载图片+缓存+线程池管理 -
endual:
点赞 点赞 点赞 点赞 点赞有个问题,就是我从网络获取图片,图 ...
Android实现ListView异步加载图片+缓存+线程池管理 -
daideshun:
Android实现ListView异步加载图片+缓存+线程池管理 -
houhualiang:
...
Android中获取网络图片的三种方法 -
dengjiexian123:
Android实现ListView异步加载图片+缓存+线程池管理
文章列表
http://www.iteye.com/topic/685986 《Android实现ListView异步加载图片 》相信很多人都用过这个方法,用起来的确不错,但本人的项目中发现,使用起来还是会有些问题:
1.每次启动程序,图片都到网络上去加载,特别耗流量。
2.如果一屏幕显示的listview的item有10条,就会开10条线程同时下载图片,cpu的占用率特别高。
3.每个item生成一个ViweCache对象,特别耗内存。仿照Android的APIdemo的listview适配器写法,
4.item里面如果图片的url是错误的,就会出现图片的占位符号消失,右边的textview的文字移动过 ...
我前面的博客写了网络获取图片的方法(见:《Android中获取网络图片的方法(如果手机缓存里面有就从缓存获取)》),但比较原始,代码比较冗长,想简化一下。另外一篇文章:《Android中获取网络图片的三种方法》里面的公用获取Drawable对象的方法,是不会缓存到手机里面的,这里就把那个方法(loadImageFromNetwork() )重写一下,达到图片缓存的目的:
// 如果缓存里面有就从缓存获取,否则网络获取图片,返回Drawable对象
public static Drawable loadImageFromNetwork(Context context, String i ...
Android里面将图片保存到本地,到网络上搜索了一下,方法都差不多,大同小异,把输入流转换成输出流的过程而已。最近工作闲,特把其中的两个方法对比一下,看他们的效率如何(找javaSE里面测试的):
第一种方法:
public static void main(String[] args) {
String url = "http://pic.yesky.com/imagelist/09/01/11277904_7147.jpg";
Long time1 = System.currentTimeMillis();
Long time2 = ...
最近工作比较闲,除了用公司的imac机学学iphone外,有必要对以前的项目里面的难点进行一下总结了,对于Android开发中的难点,一是网络获取内容的处理,二是UI设计方面。对于我来说,特别麻烦就是UI设计方面的东西,公司的开发以iphone为主,毕竟香港人的iphone普及比较高(销售价格好像是全球最低的),为了模仿iphone的Tabbar,用TabActivity+ActivityGroup的处理方式不知道出了多少问题了,还好都一一解决了。
获取网络图片的方法(如果手机缓存里面有就从缓存获取),我以前写的,比较原始:
ImageView mImageView = (Ima ...
android中获取网络图片是一件耗时的操作,如果直接获取有可能会出现应用程序无响应(ANR:Application Not Responding)对话框的情况。对于这种情况,一般的方法就是耗时操作用线程来实现。下面列三种获取url图片的方法:
1.直接获取:(容易:ANR,不建议)
mImageView = (ImageView)this.findViewById(R.id.imageThreadConcept) ;
Drawable drawable = loadImageFromNetwork(IMAGE_URL);
mImageView.setImageDrawable(dr ...