【问题标题】:How to increase the cache size in Glide android?如何增加 Glide android 中的缓存大小?
【发布时间】:2018-02-16 22:24:34
【问题描述】:

根据documentation

内部缓存工厂将磁盘缓存放置在应用程序的内部缓存目录中,并将最大大小设置为 250MB。

当我尝试在我的应用中实现一些离线功能时,它可能需要大于 250MB 的缓存大小。那么 Glide 是否允许修改缓存大小,或者我需要找到一种替代方法?如果是,我应该遵循什么机制?

我在documentation 中看到了一种增加它的方法。

builder.setDiskCache(
new InternalCacheDiskCacheFactory(context, yourSizeInBytes));

如何在我的代码中实现它?

【问题讨论】:

  • 它实际上是文档的下一行。
  • 是的,但是怎么做?以及在哪里实施?
  • 我不是强迫你,但请尝试通过在 gradle 中使用此代码来增加你的堆大小。 javaMaxHeapSize "16g"

标签: android caching android-glide image-caching


【解决方案1】:

here

您可以使用 InternalCacheDiskCacheFactory 设置磁盘缓存的大小。

builder.setDiskCache(new InternalCacheDiskCacheFactory(context, yourSizeInBytes));

你可以像下面这样申请你的项目:

import android.annotation.TargetApi;
import android.content.Context;
import android.os.Build;
import android.os.Environment;
import android.os.StatFs;
import android.util.Log;

import com.bumptech.glide.Glide;
import com.bumptech.glide.GlideBuilder;
import com.bumptech.glide.load.engine.cache.InternalCacheDiskCacheFactory;
import com.bumptech.glide.module.GlideModule;
import com.example.MyApplication;

import java.util.Locale;

public class LimitCacheSizeGlideModule implements GlideModule {

    @Override
    public void applyOptions(Context context, GlideBuilder builder) {
        if (MyApplication.from(context).isTest()) 
            return; // NOTE: StatFs will crash on robolectric.
        builder.setDiskCache(new InternalCacheDiskCacheFactory(context, yourSizeInBytes));

    }

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


}

然后在你的清单中像这样添加它

<manifest

    ...

    <application>

        <meta-data
            android:name="YourPackageNameHere.LimitCacheSizeGlideModule"
            android:value="GlideModule" />

        ...

    </application>
</manifest>    

【讨论】:

    猜你喜欢
    • 2013-06-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-01-15
    • 1970-01-01
    • 2020-10-18
    • 1970-01-01
    • 2014-10-15
    相关资源
    最近更新 更多