Deslizamiento. Caché a almacenamiento externo (tarjeta SD)
yo sueloDeslizamiento para cargar imágenes en mi aplicación de Android.
Después de la actualización 3.5, los desarrolladores proporcionaronGlideModule interfaz.
De acuerdo aEste artículo (Caché de disco) Puedo configurar el directorio de caché, usandosetDiskCache
método yExternalCacheDiskCacheFactory
.
Pero no veo ninguna diferencia. Toda la caché todavía está en el almacenamiento interno en el directorio de caché predeterminado.
build.gradle:
dependencies {
...
compile 'com.github.bumptech.glide:glide:3.6.1'
}
Manifiesto de Android:
<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>
GlideConfig.java:
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) {
}
}
proguard-rules.pro:
...
-keepnames class * com.myapp.GlideConfig
Deslizar usando:
Glide.with(context)
.load("some_url")
.dontAnimate()
.centerCrop()
.override(100, 100)
.into(holder.iv_image);