项目作者: VeiZhang

项目描述 :
封装Android图片加载库
高级语言: Java
项目地址: git://github.com/VeiZhang/ImageLoader.git
创建时间: 2018-06-20T09:32:18Z
项目社区:https://github.com/VeiZhang/ImageLoader

开源协议:

下载


图片加载器

统一管理图片加载库,随意切换图片加载框架

  • Fresco
  • Picasso
  • Glide
  • Universal-ImageLoader
  • Volley

封装

  • 多个图片加载库切换
  • 图片加载进度回调
  • 自定义配置(如占位图片、错误占位图片、缓存目录、大小等)
  • 清除缓存

使用

imageloader

imageloader-fresco

imageloader-picasso

imageloader-glide

  • 独立依赖库

    1. implementation 'com.excellence:imageloader:_latestVersion'
    2. // 下面图库三选一,减小安装包大小
    3. implementation 'com.excellence:imageloader-fresco:_latestVersion'
    4. implementation 'com.excellence:imageloader-picasso:_latestVersion'
    5. implementation 'com.excellence:imageloader-glide:_latestVersion'
  • 权限

    1. <uses-permission android:name="android.permission.INTERNET"></uses-permission>
    2. <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"></uses-permission>
    3. <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"></uses-permission>
    4. <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"></uses-permission>
  • API

    1. // 初始化,不同的加载器,有部分独立的方法
    2. // 可以自定义实现ImageLoader接口,创建新的图库加载器
    3. ImageLoaderOptions options = new ImageLoaderOptions.Builder().isLogEnable(true).isCache(false).build();
    4. mImageLoader = new FrescoImageLoader(this, options);
    5. mImageLoader = new PicassoImageLoader(this, options);
    6. mImageLoader = new GlideImageLoader(this, options);
    7. // 统一的接口
    8. public interface ImageLoader
    9. {
    10. /**
    11. * 加载资源图片
    12. *
    13. * @param view
    14. * @param resId
    15. */
    16. void loadImage(@NonNull ImageView view, @DrawableRes int resId);
    17. void loadImage(@NonNull ImageView view, @DrawableRes int resId, IListener listener);
    18. /**
    19. * 加载资源图片,占位图片,错误图片
    20. *
    21. * @param view
    22. * @param resId
    23. * @param placeholderResId
    24. * @param errorResId
    25. */
    26. void loadImage(@NonNull ImageView view, @DrawableRes int resId, @DrawableRes int placeholderResId, @DrawableRes int errorResId);
    27. void loadImage(@NonNull ImageView view, @DrawableRes int resId, @DrawableRes int placeholderResId, @DrawableRes int errorResId, IListener listener);
    28. /**
    29. * 加载本地图片
    30. *
    31. * @param view
    32. * @param file
    33. */
    34. void loadImage(@NonNull ImageView view, @NonNull File file);
    35. void loadImage(@NonNull ImageView view, @NonNull File file, IListener listener);
    36. /**
    37. * 加载本地图片,占位图片,错误图片
    38. *
    39. * @param view
    40. * @param file
    41. * @param placeholderResId
    42. * @param errorResId
    43. */
    44. void loadImage(@NonNull ImageView view, @NonNull File file, @DrawableRes int placeholderResId, @DrawableRes int errorResId);
    45. void loadImage(@NonNull ImageView view, @NonNull File file, @DrawableRes int placeholderResId, @DrawableRes int errorResId, IListener listener);
    46. /**
    47. * 加载网络图片
    48. *
    49. * @param view
    50. * @param url
    51. */
    52. void loadImage(@NonNull ImageView view, @NonNull String url);
    53. void loadImage(@NonNull ImageView view, @NonNull String url, IListener listener);
    54. /**
    55. * 加载网络图片,占位图片,错误图片
    56. *
    57. * @param view
    58. * @param url
    59. * @param placeholderResId
    60. * @param errorResId
    61. */
    62. void loadImage(@NonNull ImageView view, @NonNull String url, @DrawableRes int placeholderResId, @DrawableRes int errorResId);
    63. void loadImage(@NonNull ImageView view, @NonNull String url, @DrawableRes int placeholderResId, @DrawableRes int errorResId, IListener listener);
    64. void clearCache();
    65. }

Fresco

  1. implementation 'com.facebook.fresco:fresco:1.9.0'
  2. // 在 API < 14 上的机器支持 WebP 时,需要添加
  3. compile 'com.facebook.fresco:animated-base-support:0.12.0'
  4. // 支持 GIF 动图,需要添加
  5. compile 'com.facebook.fresco:animated-gif:0.12.0'
  6. // 支持 WebP (静态图+动图),需要添加
  7. compile 'com.facebook.fresco:animated-webp:0.12.0'
  8. compile 'com.facebook.fresco:webpsupport:0.12.0'
  9. // 仅支持 WebP 静态图,需要添加
  10. compile 'com.facebook.fresco:webpsupport:0.12.0'
  1. Uri uri = Uri.parse("https://raw.githubusercontent.com/facebook/fresco/gh-pages/static/logo.png");
  2. SimpleDraweeView draweeView = (SimpleDraweeView) findViewById(R.id.my_image_view);
  3. draweeView.setImageURI(uri);

Picasso

  1. implementation 'com.squareup.picasso:picasso:2.71828'
  1. Picasso.get()
  2. .load(url)
  3. .resize(50, 50)
  4. .centerCrop()
  5. .into(imageView)

缓存路径:data/data/your package name/cache/picasso-cache/(默认路径)

Glide

  1. implementation 'com.github.bumptech.glide:glide:4.8.0'
  2. annotationProcessor 'com.github.bumptech.glide:compiler:4.8.0'
  1. Glide.with(getContext())
  2. .load(url)
  3. .skipMemoryCache(true)
  4. .placeholder(drawable)
  5. .centerCrop()
  6. .animate(animator)
  7. .into(img);

Universal-ImageLoader

Volley

版本更新

版本 描述
1.0.0 封装Fresco、Picasso、Glide图库,简单加载图片 2018-10-11

感谢