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开源框架的简单使用

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  10. Android sdk content loader

    方法一(关闭后重启): 遇到Eclipse右下角一直显示“Android sdk content loader 0%”的情况时,直接关掉Eclipse,有ADB进程在运行时通过进程管理器结束进程,然后 ...

随机推荐

  1. eclipse启动tomcat无法访问

    eclipse启动tomcat无法访问 症状: tomcat在eclipse里面能正常启动,而在浏览器中访问http://localhost:8080/不能访问,且报404错误.同时其他项目页面也不能 ...

  2. ORM系列之二:EF(5) Model First

    前面我们已经介绍过EF中Code First开发模式,简而言之,就是不管三七二十一直接写代码,不过对于很多开发人员来说,可能并不习惯这样来开发,并且安装标准的开发流程,应该是先建模再进行编码,当然EF ...

  3. [WPF]DataGridHyperlinkColumn网址过长TextTrimming无效

    <DataGridHyperlinkColumn Binding="{Binding source}" Header="来源"> <DataG ...

  4. bom和dom总结

    BOM1.1    介绍    1.BOM是browser object model的缩写,简称浏览器对象模型    2.BOM提供了独立于内容而与浏览器窗口进行交互的对象    3.由于BOM主要用 ...

  5. Android客户端稳定性测试——Monkey

    修改时间 修改内容 修改人 2016.6.20 创建 刘永志 2016.6.29 完成 刘永志 Monkey简介: Android SDK自带的命令行测试工具,向设备发送伪随机事件流,对应用程序进行进 ...

  6. A very cool thing: Install MYSQL from source without root access on LINUX

    最近由于工作的需要,要在centos上安装MYSQL服务器.作为一名小兵中的小兵,当然是没有root权限的,为了能够使用mysql,只能使用源码安装了(因为binary安装方式似乎需要root acc ...

  7. 打印完整URL

    if(requestDictionary != nil) { //添加参数,将参数拼接在url后面 NSMutableString *paramsString = [NSMutableString s ...

  8. Unity4.3 bug GetChild顺序错乱

    历史原因,目前有个项目还在使用unity4.3版本,比较过不同Unity版本,发现unity4.3的 transform.GetChild 获取的child顺序并不是想要的. 测试代码 using U ...

  9. ajax读取XML文本(如读取城市)

    //加载城市 function loadArea_pep() { $.ajax({ url: "/xmlFile/crty.xml", success: function (res ...

  10. PHP中函数sprintf .vsprintf (占位符)

    sprintf()格式化字符串写入一个变量中. vsprintf()格式化字符串些写入变量中. <?php $num1 = 123; $num2 = 456; $txt = vsprintf(& ...