Glide 4.10导入和GlideModule相关参数说明

Glide 导入和GlideModule相关参数说明

Glide依赖
implementation 'com.github.bumptech.glide:glide:4.10.0'
annotationProcessor 'com.github.bumptech.glide:compiler:4.10.0'
转换AndroidX时Glide遇到的问题解决

转换AndroidX时,Glide编译报错:

错误: 程序包android.support.annotation不存在

错误: 找不到符号
符号:   类 NonNull
位置: 类 GlideOptions

解决方式:

//解决Glide找不到Android声明库问题
    //图片缓存
annotationProcessor 'androidx.annotation:annotation:1.1.0'
4.10 GlideModule 配置
@GlideModule
public final class AGlideModule extends com.bumptech.glide.module.AppGlideModule {
    private static final String TAG = AGlideModule.class.getSimpleName();
    @Override
    public void applyOptions(@NonNull Context context, @NonNull GlideBuilder builder) {
        MemorySizeCalculator calculator = new MemorySizeCalculator.Builder(context)
                .setMemoryCacheScreens(2)
                .build();
        //recommended memory cache size for the device
        Log.d(TAG,"CacheSize==="+calculator.getMemoryCacheSize());
       int cacheSize = calculator.getMemoryCacheSize();
        builder.setMemoryCache(new LruResourceCache(cacheSize));  //指定内存缓存大小
        // 指定位置在packageName/cache/glide_cache,大小为cacheSize的磁盘缓存
        builder.setDiskCache(new InternalCacheDiskCacheFactory(context,                           "glide_cache",cacheSize));
        //设置BitmapPool缓存内存大小
        builder.setBitmapPool(new LruBitmapPool(cacheSize));
        //设置解码格式RGB_565,该格式解码的Bitmap不支持透明度
        builder.setDefaultRequestOptions(
                new RequestOptions()
                        .format(DecodeFormat.PREFER_RGB_565).disallowHardwareConfig()
        );
    }

    @Override
    public void registerComponents(@NonNull Context context, @NonNull Glide glide, @NonNull Registry registry) {
        //设置使用okhttp加载
        OkHttpClient client = new OkHttpClient.Builder().connectTimeout(10, TimeUnit.MINUTES).readTimeout(10, TimeUnit.MINUTES).retryOnConnectionFailure(true).build();
        registry.replace(GlideUrl.class, InputStream.class, new OkHttpUrlLoader.Factory(client));
    }
    // Disable manifest parsing to avoid adding similar modules twice.
    //禁用清单解析,以避免重复添加类似的模块
    @Override
    public boolean isManifestParsingEnabled() {
        return false;
    }
}

较早的版本,已放弃

public class MyGlideModule implements GlideModule {
@Override
public void applyOptions(Context context, GlideBuilder builder) {
  /*  // 指定位置在packageName/cache/glide_cache,大小为MAX_CACHE_DISK_SIZE的磁盘缓存
    builder.setDiskCache(new InternalCacheDiskCacheFactory(context, "glide_cache", ConfigConstants.MAX_CACHE_DISK_SIZE));
    //指定内存缓存大小
    builder.setMemoryCache(new LruResourceCache(ConfigConstants.MAX_CACHE_MEMORY_SIZE));
    //全部的内存缓存用来作为图片缓存
    builder.setBitmapPool(new LruBitmapPool(ConfigConstants.MAX_CACHE_MEMORY_SIZE));
    builder.setDecodeFormat(DecodeFormat.PREFER_ARGB_8888);//和Picasso配置一样*/

    
    // 指定位置在packageName/cache/glide_cache,大小为MAX_CACHE_DISK_SIZE的磁盘缓存
    builder.setDiskCache(new InternalCacheDiskCacheFactory(context, "glide_cache", ConfigConstants.MAX_CACHE_DISK_SIZE));
    //指定内存缓存大小
    builder.setMemoryCache(new LruResourceCache(ConfigConstants.MAX_CACHE_MEMORY_SIZE));
    //设置BitmapPool缓存内存大小
    builder.setBitmapPool(new LruBitmapPool(ConfigConstants.MAX_CACHE_MEMORY_SIZE));
    builder.setDecodeFormat(DecodeFormat.PREFER_RGB_565);
}

@Override
public void registerComponents(Context context, Glide glide) {

    OkHttpClient.Builder client = new OkHttpClient.Builder()
            .connectTimeout(60, TimeUnit.SECONDS)
            .readTimeout(60, TimeUnit.SECONDS)
            .writeTimeout(45, TimeUnit.SECONDS);

    OkHttpUrlLoader.Factory factory = new OkHttpUrlLoader.Factory(client.build());

    glide.register(GlideUrl.class, InputStream.class, factory);

 //   glide.register(GlideUrl.class, InputStream.class, new HttpUrlGlideUrlLoader.Factory());
}
}
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Glide 是一个功能强大的图片加载库,提供了丰富的配置选项,以下是 Glide 常用的参数: 1. Context:必需参数,用于指定 Glide 加载图片的上下文。 2. load():必需参数,用于指定要加载的图片的 URL、资源 ID 或文件路径等。 3. placeholder():可选参数,用于在图片加载完成前显示的占位符,可以是颜色、Drawable 或资源 ID。 4. error():可选参数,用于在图片加载失败时显示的图片,可以是颜色、Drawable 或资源 ID。 5. fallback():可选参数,用于指定当图片 URL 为空或加载失败时要显示的图片。 6. override():可选参数,用于指定图片的大小,可以是固定的像素值或根据 ImageView 的大小自动计算。 7. fitCenter():可选参数,用于调整图片的缩放方式,使得图片能够完全显示在 ImageView 中。 8. centerCrop():可选参数,用于将图片剪裁为 ImageView 的中心区域,然后缩放到 ImageView 的大小。 9. circleCrop():可选参数,用于将图片剪裁为圆形,然后缩放到 ImageView 的大小。 10. transform():可选参数,用于对图片进行自定义变换,例如旋转、裁剪等操作。 11. diskCacheStrategy():可选参数,用于指定图片的缓存方式,例如只缓存原始图片、只缓存转换后的图片、缓存所有图像等。 12. priority():可选参数,用于指定图片加载的优先级。 13. skipMemoryCache():可选参数,用于指定是否将图片缓存在内存中,false 表示将图片缓存到内存中,true 表示不缓存到内存中。 14. listener():可选参数,用于监听图片加载的状态,并且在加载完成、失败或发生异常时执行相应的操作。 以上是 Glide 常用的参数,具体使用可以参考 Glide 的官方文档。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值