Skip to content
封装Android图片加载库
Java
Branch: master
Clone or download
Latest commit 327b28c Oct 12, 2018
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
Fresco
Glide 优化代码 Oct 11, 2018
ImageLoaderLibrary Fresco选用OkHttp监听加载进度 Oct 11, 2018
Picasso Picasso的加载进度 Oct 11, 2018
gradle/wrapper Init Jun 20, 2018
sample 发布版本1.0.0 Oct 12, 2018
.gitignore
README.md 发布版本1.0.0 Oct 12, 2018
build.gradle 统一管理依赖的发布配置 Oct 9, 2018
settings.gradle 分离Picasso、Fresco、Glide Oct 9, 2018

README.md

图片加载器

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

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

封装

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

使用

imageloader

imageloader-fresco

imageloader-picasso

imageloader-glide

  • 独立依赖库

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

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

    // 初始化,不同的加载器,有部分独立的方法
    // 可以自定义实现ImageLoader接口,创建新的图库加载器
    ImageLoaderOptions options = new ImageLoaderOptions.Builder().isLogEnable(true).isCache(false).build();
    mImageLoader = new FrescoImageLoader(this, options);
    mImageLoader = new PicassoImageLoader(this, options);
    mImageLoader = new GlideImageLoader(this, options);
    
    // 统一的接口
    public interface ImageLoader
    {
        /**
         * 加载资源图片
         *
         * @param view
         * @param resId
         */
        void loadImage(@NonNull ImageView view, @DrawableRes int resId);
    
        void loadImage(@NonNull ImageView view, @DrawableRes int resId, IListener listener);
    
        /**
         * 加载资源图片,占位图片,错误图片
         *
         * @param view
         * @param resId
         * @param placeholderResId
         * @param errorResId
         */
        void loadImage(@NonNull ImageView view, @DrawableRes int resId, @DrawableRes int placeholderResId, @DrawableRes int errorResId);
    
        void loadImage(@NonNull ImageView view, @DrawableRes int resId, @DrawableRes int placeholderResId, @DrawableRes int errorResId, IListener listener);
    
        /**
         * 加载本地图片
         *
         * @param view
         * @param file
         */
        void loadImage(@NonNull ImageView view, @NonNull File file);
    
        void loadImage(@NonNull ImageView view, @NonNull File file, IListener listener);
    
        /**
         * 加载本地图片,占位图片,错误图片
         *
         * @param view
         * @param file
         * @param placeholderResId
         * @param errorResId
         */
        void loadImage(@NonNull ImageView view, @NonNull File file, @DrawableRes int placeholderResId, @DrawableRes int errorResId);
    
        void loadImage(@NonNull ImageView view, @NonNull File file, @DrawableRes int placeholderResId, @DrawableRes int errorResId, IListener listener);
    
        /**
         * 加载网络图片
         *
         * @param view
         * @param url
         */
        void loadImage(@NonNull ImageView view, @NonNull String url);
    
        void loadImage(@NonNull ImageView view, @NonNull String url, IListener listener);
    
        /**
         * 加载网络图片,占位图片,错误图片
         *
         * @param view
         * @param url
         * @param placeholderResId
         * @param errorResId
         */
        void loadImage(@NonNull ImageView view, @NonNull String url, @DrawableRes int placeholderResId, @DrawableRes int errorResId);
    
        void loadImage(@NonNull ImageView view, @NonNull String url, @DrawableRes int placeholderResId, @DrawableRes int errorResId, IListener listener);
    
        void clearCache();
    }
    

Fresco

implementation 'com.facebook.fresco:fresco:1.9.0'

// 在 API < 14 上的机器支持 WebP 时,需要添加
compile 'com.facebook.fresco:animated-base-support:0.12.0'

// 支持 GIF 动图,需要添加
compile 'com.facebook.fresco:animated-gif:0.12.0'

// 支持 WebP (静态图+动图),需要添加
compile 'com.facebook.fresco:animated-webp:0.12.0'
compile 'com.facebook.fresco:webpsupport:0.12.0'

// 仅支持 WebP 静态图,需要添加
compile 'com.facebook.fresco:webpsupport:0.12.0'
Uri uri = Uri.parse("https://raw.githubusercontent.com/facebook/fresco/gh-pages/static/logo.png");
SimpleDraweeView draweeView = (SimpleDraweeView) findViewById(R.id.my_image_view);
draweeView.setImageURI(uri);

Picasso

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

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

Glide

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

Universal-ImageLoader

Volley

版本更新

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

感谢

You can’t perform that action at this time.