use of com.bumptech.glide.load.engine.bitmap_recycle.LruBitmapPool in project anitrend-app by AniTrend.
the class GlideAppModule method applyOptions.
@Override
public void applyOptions(@NonNull Context context, @NonNull GlideBuilder builder) {
boolean isLowRamDevice = CompatUtil.isLowRamDevice(context);
MemorySizeCalculator calculator = new MemorySizeCalculator.Builder(context).setMemoryCacheScreens(isLowRamDevice ? 2 : 3).build();
// Increasing cache & pool by 25% - default is 250MB
int memoryCacheSize = (int) (1.25 * calculator.getMemoryCacheSize());
int bitmapPoolSize = (int) (1.25 * calculator.getBitmapPoolSize());
int storageCacheSize = 1024 * 1024 * 350;
if (context.getExternalCacheDir() != null) {
long total = context.getExternalCacheDir().getTotalSpace();
storageCacheSize = (int) (total * 0.2);
}
builder.setMemoryCache(new LruResourceCache(memoryCacheSize));
builder.setBitmapPool(new LruBitmapPool(bitmapPoolSize));
builder.setDiskCache(new ExternalPreferredCacheDiskCacheFactory(context, storageCacheSize));
// Setting default params for glide
RequestOptions options = new RequestOptions().format(isLowRamDevice ? DecodeFormat.PREFER_RGB_565 : DecodeFormat.PREFER_ARGB_8888).timeout(KeyUtil.GLIDE_REQUEST_TIMEOUT).diskCacheStrategy(DiskCacheStrategy.AUTOMATIC).error(CompatUtil.getDrawable(context, R.drawable.ic_broken_image_white_48dp, R.color.colorStateOrange));
builder.setDefaultRequestOptions(options);
}
use of com.bumptech.glide.load.engine.bitmap_recycle.LruBitmapPool in project MVPArms by JessYanCoding.
the class GlideConfiguration method applyOptions.
@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);
}
}
Aggregations