(三)CommonLibrary之图片加载

CommonLibrary

(一)CommonLibrary之Retrofit+RxJava网络请求封装

(二)CommonLibrary之文件下载

国际惯例,先看调用方式

//网络图片加载
String url = "https://p3.pstatp.com/large/666c00065c746ccf3333";
ImageHelper.getDefault().loadImage(this, new DownloadImage.Builder()
                .path(url)
                .targetView(ivExample)
                .memoryCache(false)
                .diskCache(false)
                .build());

//本地图片加载
NeedPermissionOperate.getDefault().buildSafeExternalStoragePath(this, "scene_photo.jpg", 
            new MustGrantPermissionCallBack(this) {
                @Override
                public void granted(Context context, String result) {
                    ImageHelper.getDefault().loadImage(context, new DownloadImage.Builder()
                                                                .targetView(ivExample)
                                                                .build());
                }
        });
//缓存图片获取
ImageHelper.getDefault().getCacheImage(url, new FileCallBack() {
            @Override
            public void downloadSuccess(File file) {

            }
            @Override
            public void downloadFail(Throwable e) {

            }
        })

一如既往的简洁式操作完成功能,你可能看到了NeedPermissionOperate这个东西,这是封装好的可以安全操作需要危险权限的动作,这个没什么好说的,看看实现基本就OK了。

这个默认由Glide提供实现,你想更换图片加载框架也简单,只需实现IImageService然后在ImageHelper中替换掉就可以了

**
 * 图片加载服务
 * Created by WangPing on 2018/1/24.
 */

public interface IImageService {
    /**
     * 加载图片
     * @param context 上下文
     * @param image 图片信息
     */
    void loadImage(Context context, DownloadImage image);

    /**
     * 获取缓存图片
     * @param url 被缓存图片的url
     * @param callBack 缓存图片获取结果回调
     */
    void getCacheImage(String url, FileCallBack callBack);
}

其实最重要的就是DownloadImage的构造了,使用构建者设计模式来满足你对图片加载的各种要求。最主要的还是imagePath和需要容纳图片的imageView,如果你需要容纳图片的imageView实现了IViewProgressEvent(文件下载时介绍过这个)接口,那么会提供图片的加载进度回调到那个接口中,在那里面你就可以做你需要做的操作。

项目代码

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值