com.bumptech.glide.load.engine.cache.DiskLruCacheWrapper Java Examples
The following examples show how to use
com.bumptech.glide.load.engine.cache.DiskLruCacheWrapper.
You can vote up the ones you like or vote down the ones you don't like,
and go to the original project or source file by following the links above each example. You may check out the related API usage on the sidebar.
Example #1
Source File: GlideConfiguration.java From AcgClub with MIT License | 6 votes |
@Override public void applyOptions(final Context context, GlideBuilder builder) { builder.setDiskCache(new DiskCache.Factory() { @Override public DiskCache build() { // Careful: the external cache directory doesn't enforce permissions return DiskLruCacheWrapper .create(FileUtils.makeDirs(new File(Utils.getAppComponent().cacheFile(), "Glide")), IMAGE_DISK_CACHE_MAX_SIZE); } }); MemorySizeCalculator calculator = new MemorySizeCalculator.Builder(context).build(); int defaultMemoryCacheSize = calculator.getMemoryCacheSize(); int defaultBitmapPoolSize = calculator.getBitmapPoolSize(); int customMemoryCacheSize = (int) (1.2 * defaultMemoryCacheSize); int customBitmapPoolSize = (int) (1.2 * defaultBitmapPoolSize); builder.setMemoryCache(new LruResourceCache(customMemoryCacheSize)); builder.setBitmapPool(new LruBitmapPool(customBitmapPoolSize)); }
Example #2
Source File: AptoideGlideModule.java From aptoide-client with GNU General Public License v2.0 | 6 votes |
@Override public void applyOptions(Context context, GlideBuilder builder) { builder.setDiskCache(new DiskCache.Factory() { @Override public DiskCache build() { File pathIcons = new File(Configuration.PATH_CACHE_ICONS); pathIcons.mkdirs(); return DiskLruCacheWrapper.get(pathIcons, DEFAULT_DISK_CACHE_SIZE); } }); final MemorySizeCalculator calculator = new MemorySizeCalculator(context); final int defaultMemoryCacheSize = calculator.getMemoryCacheSize(); builder.setMemoryCache(new LruResourceCache(defaultMemoryCacheSize / 2)); final int defaultBitmapPoolSize = calculator.getBitmapPoolSize(); builder.setBitmapPool(new LruBitmapPool(defaultBitmapPoolSize / 2)); }
Example #3
Source File: GlideUtils.java From BigApp_Discuz_Android with Apache License 2.0 | 6 votes |
public static void init(final Context context) { OkHttpClient okHttpClient = new OkHttpClient(); okHttpClient.setReadTimeout(30, TimeUnit.SECONDS); okHttpClient.setConnectTimeout(30, TimeUnit.SECONDS); // okHttpClient.setProtocols(Arrays.asList(Protocol.HTTP_1_1)); GlideBuilder glideBuilder = new GlideBuilder(context) .setDiskCache(new DiskCache.Factory() { @Override public DiskCache build() { // Careful: the external cache directory doesn't enforce permissions File cacheLocation = new File(context.getExternalCacheDir(), AppConfig.CACHE_IMAGE_DIR); cacheLocation.mkdirs(); return DiskLruCacheWrapper.get(cacheLocation, 100 * 1024 * 1024); } }); if (!Glide.isSetup()) { Glide.setup(glideBuilder); } Glide.get(context).register(GlideUrl.class, InputStream.class, new OkHttpUrlLoader.Factory(okHttpClient)); }
Example #4
Source File: GlideConfiguration.java From GankGirl with GNU Lesser General Public License v2.1 | 6 votes |
@Override public void applyOptions(final Context context, GlideBuilder builder) { builder.setDecodeFormat(DecodeFormat.PREFER_ARGB_8888);// Bitmap格式转换到ARGB_8888 //内存缓存 MemorySizeCalculator memorySizeCalculator = new MemorySizeCalculator(context); int defaultMemoryCacheSize = memorySizeCalculator.getMemoryCacheSize(); int defalutBitmapPoolSize = memorySizeCalculator.getBitmapPoolSize(); builder.setMemoryCache(new LruResourceCache((int) (defalutBitmapPoolSize * 1.2)));//内部 builder.setBitmapPool(new LruBitmapPool((int) (defalutBitmapPoolSize * 1.2))); //磁盘缓存 builder.setDiskCache(new InternalCacheDiskCacheFactory(context, 1024 * 1024 * 10));//内部磁盘缓存 builder.setDiskCache(new ExternalCacheDiskCacheFactory(context, 10 * 1024 * 1024));//磁盘缓存到外部存储 //指定缓存目录1 String downLoadPath = Environment.getDownloadCacheDirectory().getPath(); builder.setDiskCache(new DiskLruCacheFactory(downLoadPath, defaultMemoryCacheSize)); //指定缓存目录2 builder.setDiskCache(new DiskCache.Factory() { @Override public DiskCache build() { File cacheLocation = new File(FileUtils.getCacheDir(context), "GlideCache"); return DiskLruCacheWrapper.get(cacheLocation, 1024 * 1024 * 10); } }); }
Example #5
Source File: GlideConfiguration.java From MVPArms with Apache License 2.0 | 6 votes |
@Override public void applyOptions(@NonNull Context context, @NonNull GlideBuilder builder) { final AppComponent appComponent = ArmsUtils.obtainAppComponentFromContext(context); builder.setDiskCache(() -> { // Careful: the external cache directory doesn't enforce permissions return DiskLruCacheWrapper.create(DataHelper.makeDirs(new File(appComponent.cacheFile(), "Glide")), IMAGE_DISK_CACHE_MAX_SIZE); }); MemorySizeCalculator calculator = new MemorySizeCalculator.Builder(context).build(); int defaultMemoryCacheSize = calculator.getMemoryCacheSize(); int defaultBitmapPoolSize = calculator.getBitmapPoolSize(); int customMemoryCacheSize = (int) (1.2 * defaultMemoryCacheSize); int customBitmapPoolSize = (int) (1.2 * defaultBitmapPoolSize); builder.setMemoryCache(new LruResourceCache(customMemoryCacheSize)); builder.setBitmapPool(new LruBitmapPool(customBitmapPoolSize)); //将配置 Glide 的机会转交给 GlideImageLoaderStrategy,如你觉得框架提供的 GlideImageLoaderStrategy //并不能满足自己的需求,想自定义 BaseImageLoaderStrategy,那请你最好实现 GlideAppliesOptions //因为只有成为 GlideAppliesOptions 的实现类,这里才能调用 applyGlideOptions(),让你具有配置 Glide 的权利 BaseImageLoaderStrategy loadImgStrategy = appComponent.imageLoader().getLoadImgStrategy(); if (loadImgStrategy instanceof GlideAppliesOptions) { ((GlideAppliesOptions) loadImgStrategy).applyGlideOptions(context, builder); } }
Example #6
Source File: OkHttpProgressGlideModule.java From imsdk-android with MIT License | 5 votes |
@Override public void applyOptions(Context context, GlideBuilder builder) { builder.setDecodeFormat(DecodeFormat.PREFER_ARGB_8888); File cacheDir = new File(context.getCacheDir(), DiskCache.Factory.DEFAULT_DISK_CACHE_DIR); cache = DiskLruCacheWrapper.get(cacheDir, DiskCache.Factory.DEFAULT_DISK_CACHE_SIZE); builder.setDiskCache(new DiskCache.Factory() { @Override public DiskCache build() { return cache; } }); }
Example #7
Source File: GlideConfig.java From AndroidProject with Apache License 2.0 | 5 votes |
@SuppressWarnings("ResultOfMethodCallIgnored") @Override public void applyOptions(@NonNull Context context, @NonNull GlideBuilder builder) { // 读写外部缓存目录不需要申请存储权限 File diskCacheFile = new File(context.getCacheDir(), "glide"); // 如果这个路径是一个文件 if (diskCacheFile.exists() && diskCacheFile.isFile()) { // 执行删除操作 diskCacheFile.delete(); } // 如果这个路径不存在 if (!diskCacheFile.exists()) { // 创建多级目录 diskCacheFile.mkdirs(); } builder.setDiskCache(() -> DiskLruCacheWrapper.create(diskCacheFile, IMAGE_DISK_CACHE_MAX_SIZE)); MemorySizeCalculator calculator = new MemorySizeCalculator.Builder(context).build(); int defaultMemoryCacheSize = calculator.getMemoryCacheSize(); int defaultBitmapPoolSize = calculator.getBitmapPoolSize(); int customMemoryCacheSize = (int) (1.2 * defaultMemoryCacheSize); int customBitmapPoolSize = (int) (1.2 * defaultBitmapPoolSize); builder.setMemoryCache(new LruResourceCache(customMemoryCacheSize)); builder.setBitmapPool(new LruBitmapPool(customBitmapPoolSize)); // 设置默认的加载占位图和加载出错图 builder.setDefaultRequestOptions(new RequestOptions().placeholder(R.drawable.image_loading).error(R.drawable.image_load_err)); }
Example #8
Source File: GlideConfiguration.java From Aurora with Apache License 2.0 | 5 votes |
@Override public void applyOptions(Context context, GlideBuilder builder) { AppComponent appComponent = ArmsUtils.obtainAppComponentFromContext(context); builder.setDiskCache(new DiskCache.Factory() { @Override public DiskCache build() { // Careful: the external cache directory doesn't enforce permissions return DiskLruCacheWrapper.get(DataHelper.makeDirs(new File(appComponent.cacheFile(), "Glide")), IMAGE_DISK_CACHE_MAX_SIZE); } }); MemorySizeCalculator calculator = new MemorySizeCalculator.Builder(context).build(); int defaultMemoryCacheSize = calculator.getMemoryCacheSize(); int defaultBitmapPoolSize = calculator.getBitmapPoolSize(); int customMemoryCacheSize = (int) (1.2 * defaultMemoryCacheSize); int customBitmapPoolSize = (int) (1.2 * defaultBitmapPoolSize); builder.setMemoryCache(new LruResourceCache(customMemoryCacheSize)); builder.setBitmapPool(new LruBitmapPool(customBitmapPoolSize)); //将配置 Glide 的机会转交给 GlideImageLoaderStrategy,如你觉得框架提供的 GlideImageLoaderStrategy //并不能满足自己的需求,想自定义 BaseImageLoaderStrategy,那请你最好实现 GlideAppliesOptions //因为只有成为 GlideAppliesOptions 的实现类,这里才能调用 applyGlideOptions(),让你具有配置 Glide 的权利 BaseImageLoaderStrategy loadImgStrategy = appComponent.imageLoader().getLoadImgStrategy(); if (loadImgStrategy instanceof GlideAppliesOptions) { ((GlideAppliesOptions) loadImgStrategy).applyGlideOptions(context, builder); } }
Example #9
Source File: GlideConfiguration.java From MVVMArms with Apache License 2.0 | 5 votes |
@Override public void applyOptions(Context context, GlideBuilder builder) { super.applyOptions(context, builder); builder.setDiskCache(new DiskCache.Factory() { @Nullable @Override public DiskCache build() { // Careful: the external cache directory doesn't enforce permissions return DiskLruCacheWrapper.get(DataHelper.makeDirs( new File(RepositoryUtils.INSTANCE.obtainRepositoryComponent(context).cacheFile(), "Glide")), IMAGE_DISK_CACHE_MAX_SIZE); } }); MemorySizeCalculator calculator = new MemorySizeCalculator.Builder(context).build(); int defaultMemoryCacheSize = calculator.getMemoryCacheSize(); int defaultBitmapPoolSize = calculator.getBitmapPoolSize(); int customMemoryCacheSize = (int) (1.2 * defaultMemoryCacheSize); int customBitmapPoolSize = (int) (1.2 * defaultBitmapPoolSize); builder.setMemoryCache(new LruResourceCache(customMemoryCacheSize)); builder.setBitmapPool(new LruBitmapPool(customBitmapPoolSize)); //将配置 Glide 的机会转交给 GlideImageLoaderStrategy,如你觉得框架提供的 GlideImageLoaderStrategy //并不能满足自己的需求,想自定义 BaseImageLoaderStrategy,那请你最好实现 GlideAppliesOptions //因为只有成为 GlideAppliesOptions 的实现类,这里才能调用 applyGlideOptions(),让你具有配置 Glide 的权利 BaseImageLoaderStrategy imageLoaderStrategy = ArmsUtils.INSTANCE.obtainArmsComponent(context).imageLoader().getStrategy(); if (imageLoaderStrategy instanceof GlideAppliesOptions) { ((GlideAppliesOptions) imageLoaderStrategy).applyGlideOptions(context, builder); } }
Example #10
Source File: SampleGlideModule.java From fresco with MIT License | 5 votes |
@Override public void applyOptions(final Context context, GlideBuilder builder) { builder.setDiskCache( new DiskCache.Factory() { @Override public DiskCache build() { return DiskLruCacheWrapper.get( Glide.getPhotoCacheDir(context), ConfigConstants.MAX_DISK_CACHE_SIZE); } }); builder.setMemoryCache(new LruResourceCache(ConfigConstants.MAX_MEMORY_CACHE_SIZE)); }
Example #11
Source File: HHGlideModel.java From HHComicViewer with Apache License 2.0 | 4 votes |
@Override public void applyOptions(final Context context, GlideBuilder builder) { SharedPreferencesManager manager = new SharedPreferencesManager(context); final String cacheSize = manager.getString(DISK_CACHE_KEY, DISK_CACHE_160MB); String decodeFormat = manager.getString(DECODE_FORMAT_KEY, DECODE_FORMAT_ARGB_8888); final String cacheName = manager.getString(DISK_CACHE_NAME_KEY, DEFAULT_CACHE_NAME); DecodeFormat format = null; switch (decodeFormat) { case DECODE_FORMAT_RGB_565: format = DecodeFormat.PREFER_RGB_565; break; default: case DECODE_FORMAT_ARGB_8888: format = DecodeFormat.PREFER_ARGB_8888; break; } // 高版本配置,没有禁用Hardware Bitmaps,仅Android O以上版本的新特性 // 参阅https://muyangmin.github.io/glide-docs-cn/doc/hardwarebitmaps.html了解不能使用Hardware Bitmaps的情况 // 不禁用可能会导致错误,但是有着节省内存和避免内存抖动的优点 builder.setDefaultRequestOptions(new RequestOptions() .format(format) ); builder.setDiskCache(new DiskCache.Factory() { @Override public DiskCache build() { int sizeInMB = 160; switch (cacheSize) { case DISK_CACHE_40MB: sizeInMB = 40; break; case DISK_CACHE_80MB: sizeInMB = 80; break; case DISK_CACHE_160MB: sizeInMB = 160; break; case DISK_CACHE_320MB: sizeInMB = 320; break; default: case DISK_CACHE_640MB: sizeInMB = 640; break; } File path = null; if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.KITKAT) { path = context.getExternalCacheDirs()[(context.getExternalCacheDirs().length - 1)]; } else { path = context.getExternalCacheDir(); } File cacheLocation = new File(path, cacheName); cacheLocation.mkdirs(); return DiskLruCacheWrapper.create(cacheLocation, sizeInMB * 1024 * 1024); } }); }