1. 全局配置 android-image-loader的使用
  2. public class Application extends Application {
  3. @Override
  4. public void onCreate() {
  5. super.onCreate();
  6. initImageLoader(getApplicationContext());
  7. }
  8. public static void initImageLoader(Context context) {
  9. //缓存文件的目录
  10. File cacheDir = StorageUtils.getOwnCacheDirectory(context, "universalimageloader/Cache");
  11. ImageLoaderConfiguration config = new ImageLoaderConfiguration.Builder(context)
  12. .memoryCacheExtraOptions(480, 800) // max width, max height,即保存的每个缓存文件的最大长宽
  13. .threadPoolSize(3) //线程池内线程的数量
  14. .threadPriority(Thread.NORM_PRIORITY - 2)
  15. .denyCacheImageMultipleSizesInMemory()
  16. .diskCacheFileNameGenerator(new Md5FileNameGenerator()) //将保存的时候的URI名称用MD5 加密
  17. .memoryCache(new UsingFreqLimitedMemoryCache(2 * 1024 * 1024))
  18. .memoryCacheSize(2 * 1024 * 1024) // 内存缓存的最大值
  19. .diskCacheSize(50 * 1024 * 1024)  // SD卡缓存的最大值
  20. .tasksProcessingOrder(QueueProcessingType.LIFO)
  21. // 由原先的discCache -> diskCache
  22. .diskCache(new UnlimitedDiscCache(cacheDir))//自定义缓存路径
  23. .imageDownloader(new BaseImageDownloader(context, 5 * 1000, 30 * 1000)) // connectTimeout (5 s), readTimeout (30 s)超时时间
  24. .writeDebugLogs() // Remove for release app
  25. .build();
  26. //全局初始化此配置
  27. ImageLoader.getInstance().init(config);
  28. }
  29. }

主要类文件

  1. public class MainActivity extends Activity {
  2. private ImageLoader imageLoader;
  3. private ListView lv;
  4. private String[] imageUrls;
  5. private DisplayImageOptions options;
  6. @Override
  7. protected void onCreate(Bundle savedInstanceState) {
  8. super.onCreate(savedInstanceState);
  9. setContentView(R.layout.activity_main);
  10. imageLoader = ImageLoader.getInstance();
  11. lv = (ListView)findViewById(R.id.list);
  12. imageUrls = Constants.images;
  13. // 使用DisplayImageOptions.Builder()创建DisplayImageOptions
  14. options = new DisplayImageOptions.Builder()
  15. .showImageOnLoading(R.drawable.ic_stub) // 设置图片下载期间显示的图片
  16. .showImageForEmptyUri(R.drawable.ic_empty) // 设置图片Uri为空或是错误的时候显示的图片
  17. .showImageOnFail(R.drawable.ic_error) // 设置图片加载或解码过程中发生错误显示的图片
  18. .cacheInMemory(true) // 设置下载的图片是否缓存在内存中
  19. .cacheOnDisk(true) // 设置下载的图片是否缓存在SD卡中
  20. .displayer(new RoundedBitmapDisplayer(20)) // 设置成圆角图片
  21. .build(); // 构建完成
  22. lv.setAdapter(new ItemListAdapter());
  23. }
  24. @Override
  25. public boolean onCreateOptionsMenu(Menu menu) {
  26. // Inflate the menu; this adds items to the action bar if it is present.
  27. getMenuInflater().inflate(R.menu.main, menu);
  28. return true;
  29. }
  30. @Override
  31. public boolean onOptionsItemSelected(MenuItem item) {
  32. switch (item.getItemId()) {
  33. case R.id.item_clear_memory_cache:
  34. ImageLoader.getInstance().clearMemoryCache();
  35. return true;
  36. case R.id.item_clear_disc_cache:
  37. ImageLoader.getInstance().clearDiskCache();
  38. return true;
  39. default:
  40. return false;
  41. }
  42. }
  43. class ItemListAdapter extends BaseAdapter {
  44. @Override
  45. public int getCount() {
  46. // TODO Auto-generated method stub
  47. return imageUrls.length;
  48. }
  49. @Override
  50. public Object getItem(int position) {
  51. // TODO Auto-generated method stub
  52. return imageUrls[position];
  53. }
  54. @Override
  55. public View getView(int position, View convertView, ViewGroup parent) {
  56. // TODO Auto-generated method stub
  57. ViewHolder holder = null;
  58. if (convertView == null) {
  59. convertView = getLayoutInflater().inflate(R.layout.item_list, parent, false);
  60. holder = new ViewHolder();
  61. holder.text = (TextView) convertView.findViewById(R.id.text);
  62. holder.image = (ImageView) convertView.findViewById(R.id.image);
  63. convertView.setTag(holder);
  64. } else {
  65. holder = (ViewHolder) convertView.getTag();
  66. }
  67. holder.text.setText("Item " + (position + 1));
  68. imageLoader.displayImage(imageUrls[position], holder.image, options);
  69. return convertView;
  70. }
  71. @Override
  72. public long getItemId(int position) {
  73. // TODO Auto-generated method stub
  74. return position;
  75. }
  76. class ViewHolder {
  77. public ImageView image;
  78. public TextView text;
  79. }
  80. }
  81. }

android universal-image-loader的使用的更多相关文章

  1. android universal image loader 缓冲原理详解

    1. 功能介绍 1.1 Android Universal Image Loader Android Universal Image Loader 是一个强大的.可高度定制的图片缓存,本文简称为UIL ...

  2. Android Universal Image Loader java.io.FileNotFoundException: http:/xxx/lxx/xxxx.jpg

    前段时间在使用ImageLoader异步加载服务端返回的图片时总是出现 java.io.FileNotFoundException: http://xxxx/l046/10046137034b1c0d ...

  3. Android中Universal Image Loader开源框架的简单使用

    UIL (Universal Image Loader)aims to provide a powerful, flexible and highly customizable instrument ...

  4. 【Android应用开发】 Universal Image Loader ( 使用简介 | 示例代码解析 )

    作者 : 韩曙亮 转载请注明出处 : http://blog.csdn.net/shulianghan/article/details/50824912 相关地址介绍 : -- Universal I ...

  5. 开源项目Universal Image Loader for Android 说明文档 (1) 简介

     When developing applications for Android, one often facesthe problem of displaying some graphical ...

  6. 开源项目Universal Image Loader for Android 说明文档 (1) 简单介绍

     When developing applications for Android, one often facesthe problem of displaying some graphical ...

  7. universal image loader在listview/gridview中滚动时重复加载图片的问题及解决方法

    在listview/gridview中使用UIL来display每个item的图片,当图片数量较多需要滑动滚动时会出现卡顿,而且加载过的图片再次上翻后依然会重复加载(显示设置好的加载中图片) 最近在使 ...

  8. eclipse android sdk content loader一直显示0%的问题解决

    今天上班启动eclipse,发现eclipse 一直卡在android sdk content loader的地方,一直显示为0%.百度后发现很多都是一下解决方法:  关闭Eclipse,删掉Ecli ...

  9. Android SDK content Loader has encountered a problem.parseSdkContent failed

    打开Eclipse,弹出Android SDK content Loader has encountered a problem.parseSdkContent failed,当点击detail按钮, ...

  10. universal image loader自己使用的一些感受

    1.全局入口的Application定义初始化: ImageLoaderConfiguration configuration = new ImageLoaderConfiguration.Build ...

随机推荐

  1. DoraCMS 源码知识点备注

    项目需要研究了下DoraCMS这款开源CMS,真心做的不错:).用的框架是常用的express 4 + mongoose,代码也很规范,值得学习. 源码中一些涉及到的小知识点备注下: https:// ...

  2. 领域驱动设计实战—基于DDDLite的权限管理OpenAuth.net

    在园子里面,搜索一下“权限管理”至少能得到上千条的有效记录.记得刚开始工作的时候,写个通用的权限系统一直是自己的一个梦想.中间因为工作忙(其实就是懒!)等原因,被无限期搁置了.最近想想,自己写东西时, ...

  3. JQuery插件定义

    一:导言 有些WEB开发者,会引用一个JQuery类库,然后在网页上写一写$("#"),$("."),写了几年就对别人说非常熟悉JQuery.我曾经也是这样的人 ...

  4. WebStorm 常用功能的使用技巧分享

    WebStorm 是 JetBrain 公司开发的一款 JavaScript IDE,使用非常方便,可以使编写代码过程更加流畅. 本文在这里分享一些常用功能的使用技巧,希望能帮助大家更好的使用这款强大 ...

  5. jQuery的几个应例题、JSON基础

    1.下拉列表取值.赋值 (1)写个下拉列表,如下: <select id="sel"> <option value="山东">山东< ...

  6. ASP.NET 5 WebApi 返回 HttpResponseMessage

    首先,ASP.NET 5 没有了 MVC 和 WebApi 的区分,都属于 ASP.NET 5,从 Controller 的继承就可以看出,原来 ASP.NET WebApi 2 ValuesCont ...

  7. C# 给Word文档添加内容控件

    C# 给Word文档添加内容控件 在MS Word中,我们可以通过内容控件来向word文档中插入预先定义好的模块,指定模块的内容格式(如图片.日期.列表或格式化的文本等),从而创建一个结构化的word ...

  8. ASP.NET Core 中文文档 第四章 MVC(3.6.2 )自定义标签辅助类(Tag Helpers)

    原文:Authoring Tag Helpers 作者:Rick Anderson 翻译:张海龙(jiechen) 校对:许登洋(Seay) 示例代码查看与下载 从 Tag Helper 讲起 本篇教 ...

  9. WebAPI接口返回ArrayList包含Dictionary对象正确解析

    一.问题提出 为了减少流量,将key-value(键值对)直接输出到Dictionary<string, string>,接口返回结果如下: 其中{}里面内容如下: 上图显示600是键,4 ...

  10. ASP.NET 截获服务器生成的将要发送到客户端的html的方法

    有时候我们需要在将服务器端生成的html发送带客户端之前对这些html进行操作,比如生成静态html加之保存.改变生成的html中的某些内容等等,那么久可以通过如下的方案解决. 我总结了两种方式,个人 ...