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. .NET跨平台:在CentOS上编译dnx并运行ASP.NET 5示例程序

    在之前的博文中我们在 Ubuntu 上成功编译出了 dnx ,并且用它成功运行了 ASP.NET 5 示例程序.在这篇博文中我们将 Ubuntu 换成 CentOS. 目前 dnx 的编译需要用到 m ...

  2. 用C表达面向对象语言的机制——C#版

    PS:本文PDF版在这里(格式更好看一些).最新的源代码请在本页面文末下载,PDF中的链接不是最新的. 用C表达面向对象语言的机制——C#版 我一直认为,面向对象语言是对面向过程语言的封装.如果是这样 ...

  3. 海量数据处理利器greenplum——初识

    简介及适用场景 如果想在数据仓库中快速查询结果,可以使用greenplum. Greenplum数据库也简称GPDB.它拥有丰富的特性: 第一,完善的标准支持:GPDB完全支持ANSI SQL 200 ...

  4. CSS样式表分类

    1.内联样式表 <p  style="font-size:11px;">内联样式表</p> 2.内嵌样式表 写在head标签里 <style  typ ...

  5. VR ( Virtual Reality )、AR(Augmented Reality)、MR(Mix Reality)和CR(Cinematic Reality)是什么鬼?

    整个社会对虚拟现实的研究和开发源于上个世纪六十年代,计算机图形学.人机接口技术.图像处理与模式识别.多传感技术.语音处理与音响技术.高性能计算机系统.人工智能等领域在之后半个世纪取得了长足的发展为虚拟 ...

  6. 微信JSAPI支付

    最近在微信H5页面内集成微信JSAPI支付,遇到不少问题,现将集成步骤及遇到的问题记录如下: 1.官方下载SDK,下载地址:https://pay.weixin.qq.com/wiki/doc/api ...

  7. WCF学习之旅—实现支持REST客户端应用(二十四)

    WCF学习之旅—实现REST服务(二十二) WCF学习之旅—实现支持REST服务端应用(二十三) 在上二篇文章中简单介绍了一下RestFul与WCF支持RestFul所提供的方法,及创建一个支持RES ...

  8. C#制作、打包、签名、发布Activex全过程

    一.前言 最近有这样一个需求,需要在网页上面启动客户端的软件,软件之间的通信.调用,单单依靠HTML是无法实现了,因此必须借用Activex来实现.由于本人主要擅长C#,自然本文给出了用C#实现的范例 ...

  9. 【Win10 应用开发】实现数据的增量加载

    今天,老周有小故事讲,国庆期间.有一次老周在某站台上候公交车.老周旁边也站满了人,突然,有一位头发弄得像电线杆的小伙子,不知为何,没有先兆地就大笑起来. 老周先是看了那小伙子一眼,他手上没有拿什么东西 ...

  10. 【Win10 应用开发】使用“实时可视化树”工具查看应用界面元素

    记得有朋友问老周,系统中的“计算器”应用的界面菜单是怎么做的.其实,你可以用VS 2015的新工具来查看它的界面结构. 实时可视化树工具只能查看XAML定义的界面,如WPF和Win App.现在,Wi ...