滑行。缓存到外部存储(SD卡)

时间:2015-12-13 16:32:29

标签: android android-glide

我使用Glide在我的Android应用程序中加载图像 3.5更新后,开发人员提供了GlideModule界面 根据{{​​3}}(磁盘缓存),我可以使用ExternalCacheDiskCacheFactory方法和dependencies { ... compile 'com.github.bumptech.glide:glide:3.6.1' } 设置缓存目录。
但我没有看到任何区别。所有缓存仍在默认缓存目录中的内部存储上。

的build.gradle

<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<application ...>
<meta-data
        android:name="com.myapp.GlideConfig"
        android:value="GlideModule" />
</application>

Android Manifest

public class GlideConfig implements GlideModule {
    @Override
    public void applyOptions(Context context, GlideBuilder builder) {
        String state = Environment.getExternalStorageState();
        if (Environment.MEDIA_MOUNTED.equals(state)) {
            Log.e("GlideConfig", "MEDIA_MOUNTED");
            builder.setDiskCache(
                context.getString(R.string.app_name),
                        419430400));//400Mb
            //Environment.getExternalStorageDirectory().getPath()
            // + "/"
            // + context.getString(R.string.app_name)
        }
        else {
            Log.e("GlideConfig", "!MEDIA_MOUNTED");
        }
    }

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

GlideConfig.java

...
-keepnames class * com.myapp.GlideConfig

proguard-rules.pro

Glide.with(context)
.load("some_url")
.dontAnimate()
.centerCrop()
.override(100, 100)
.into(holder.iv_image);

使用进行滑行:

var wordList: WordList?

1 个答案:

答案 0 :(得分:11)

设置值为GlideBuilder的{​​{1}}您可以将ExternalStorageDirectory设置为缓存目录。

setDiskCache

检查Can't set GlideBuilder

希望对你有所帮助。