android替换Glide通讯组件为Okhttp并监控加载进度,安卓rxjava获取网络时间

import com.bumptech.glide.load.model.GlideUrl;

import com.bumptech.glide.load.model.ModelLoader;

import com.bumptech.glide.load.model.ModelLoaderFactory;

import java.io.InputStream;

import okhttp3.OkHttpClient;

/**

  • 仿照HttpUrlGlideUrlLoader

*/

public class OkHttpGlideUrlLoader implements ModelLoader<GlideUrl, InputStream> {

private OkHttpClient okHttpClient;

public static class Factory implements ModelLoaderFactory<GlideUrl, InputStream> {

private OkHttpClient client;

public Factory() {

}

public Factory(OkHttpClient client) {

this.client = client;

}

private synchronized OkHttpClient getOkHttpClient() {

if (client == null) {

client = new OkHttpClient();

}

return client;

}

@Override

public ModelLoader<GlideUrl, InputStream> build(Context context, GenericLoaderFactory factories) {

return new OkHttpGlideUrlLoader(getOkHttpClient());

}

@Override

public void teardown() {

}

}

public OkHttpGlideUrlLoader(OkHttpClient client) {

this.okHttpClient = client;

}

@Override

public DataFetcher getResourceFetcher(GlideUrl model, int width, int height) {

return new OkHttpFetcher(okHttpClient, model);

}

}

自定义MyGlideModule注册OkHttpGlideUrlLoader


package tsou.cn.glidetest.Glide;

import android.content.Context;

import com.bumptech.glide.Glide;

import com.bumptech.glide.GlideBuilder;

import com.bumptech.glide.load.DecodeFormat;

import com.bumptech.glide.load.engine.cache.ExternalCacheDiskCacheFactory;

import com.bumptech.glide.load.model.GlideUrl;

import com.bumptech.glide.module.GlideModule;

import java.io.InputStream;

import okhttp3.OkHttpClient;

import tsou.cn.glidetest.Glide.okhttp.OkHttpGlideUrlLoader;

import tsou.cn.glidetest.Glide.okhttp.ProgressInterceptor;

/**

  • 自定义模块

  • 目前Glide还无法识别我们自定义的MyGlideModule,

  • 如果想要让它生效,

  • 还得在AndroidManifest.xml文件当中加入如下配置才行

*/

public class MyGlideModule implements GlideModule {

/**

  • setMemoryCache()

  • 用于配置Glide的内存缓存策略,默认配置是LruResourceCache。

  • setBitmapPool()

  • 用于配置Glide的Bitmap缓存池,默认配置是LruBitmapPool。

  • setDiskCache()

  • 用于配置Glide的硬盘缓存策略,默认配置是InternalCacheDiskCacheFactory。

  • setDiskCacheService()

  • 用于配置Glide读取缓存中图片的异步执行器,默认配置是FifoPriorityThreadPoolExecutor,

  • 也就是先入先出原则。

  • setResizeService()

  • 用于配置Glide读取非缓存中图片的异步执行器,默认配置也是FifoPriorityThreadPoolExecutor。

  • setDecodeFormat()

  • 用于配置Glide加载图片的解码模式,默认配置是RGB_565。

*/

public static final int DISK_CACHE_SIZE = 500 * 1024 * 1024;

public static final String DISK_CACHE_NAME = “huangxiaoguo”;

@Override

public void applyOptions(Context context, GlideBuilder builder) {

/**

将所有Glide加载的图片缓存到SD卡上,

默认硬盘缓存大小都是250M,这里改为500

  • */

//builder.setDiskCache(new ExternalCacheDiskCacheFactory(context));

/**

ExternalCacheDiskCacheFactory的默认缓存路径

是在sdcard/Android/data/包名/cache/image_manager_d

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值