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. }

转载于:https://www.cnblogs.com/zhou2016/p/5600941.html

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 ( 使用简介 | 示例代码解析 )

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

  3. (universal Image Loader)UIL 使用 (2)

    系列(universal Image Loader)UIL 使用 (1)   UIL 使用 3 简单介绍了UIL的最基本的使用方法,这次继续老学习UIL的使用 这次只是分析学习一个方法 <spa ...

  4. (universal Image Loader)UIL 使用 (1)

    UIL Github 网址 系类文章:(universal Image Loader)UIL使用(2),UIL使用3 universal image loader 的功能就是加载图片 在as 中 ap ...

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

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

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

    universal image loader在listview/gridview中滚动时重复加载图片的问题及解决方法 参考文章: (1)universal image loader在listview/ ...

  7. eclipse一直卡住,出现 “android sdk content loader 0%” 卡住的错误分析及解决方法...

    分析:这种问题之前没有遇到过,也不知道什么原因,直接去网上查询,打开www.stackoverflow.com,输入要查询问题的关键词,我们输入 "android sdk content l ...

  8. 右下角android sdk content loader 加载很慢的解决方法

    eclipse 每次启动会出现这样的情况 右下角的Android SDK Content Loader:一直是 0%不变 一直卡. 这样导致无法正常开发 很烦人的 1 方法一:删掉 .android目 ...

  9. 【译】UNIVERSAL IMAGE LOADER. PART 3---ImageLoader详解

    在之前的文章,我们重点讲了Android-Universal-Image-Loader的三个主要组件,现在我们终于可以开始使用它了. Android-Universal-Image-Loader有四个 ...

  10. Android --- 漂亮的 Loader 加载动画

    效果图: Usage Step 1Add dependencies in build.gradle.dependencies{ compile'com.wang.avi:library:2.1.3'} ...

最新文章

  1. 山东科技大学计算机控制系统期末考试试卷,山东科技大学_计算机操作系统试题A...
  2. matlab pdist2函数官方详解
  3. AtomicInteger
  4. 文件描述符fd是什么?
  5. java代码数据库添加操作_java连接数据库后进行更新插入操作
  6. 并发insert情况下会发生重复的数据插入问题
  7. reids源码 t_hash.c 实现
  8. Update function module call in SM13
  9. 追寻终极数据库 - 事务/分析混合处理系统的交付挑战 (3)
  10. STMF4x 固件库V1.25.0
  11. 计算机研究所专业课,【择校必看】十三所计算机专业课只考数据结构的985院校!...
  12. 在线修改域控的IP和机器名
  13. codeforces round #257 div2 C、D
  14. wxPython练习
  15. ANIMATION经典小车动画
  16. java web start 参数_学习笔记(二)Eclipse设置 Servlet配置及初始化参数读取 及Servlet应用...
  17. 如何速成java_极*Java速成教程 - (2)
  18. 查找算法之二分查找算法
  19. 企业微信开发服务端报错汇总(手把手教你企业微信开发五)
  20. wireshark数据包分析实战 读书笔记

热门文章

  1. 目前电子计算机已经发展到______阶段,《全国高校计算机联合考试广西考区一级笔试试题卷.doc...
  2. Java rp api_Java初级--常用的API
  3. 【MySQL】错误#1217:外键约束引起的错误
  4. Win10上rabbitmq 安装
  5. 【sprinb-boot】thymeleaf设置缓存
  6. npm ERR! code ELIFECYCLE解决方案
  7. java 快速查找 list_面试官:小伙子,你连Java集合都讲不清楚,怎么就敢开口要8K呀?...
  8. Linux环境下搭建FTP服务器
  9. java类描述_java笔记2:Java语言中的类和对象的描述
  10. 布尔类型的值包括( )和( )_布尔类型