para - glide error image android
Glide-4.0.0 Falta marcador de posición, error, GlideApp y no resuelve su método marcador de posición, error (8)
Dependencias:
compile ''com.github.bumptech.glide:glide:4.1.1''
annotationProcessor ''com.github.bumptech.glide:compiler:4.1.1''
Agregue una implementación AppGlideModule debidamente anotada:
import com.bumptech.glide.annotation.GlideModule;
import com.bumptech.glide.module.AppGlideModule;
@GlideModule
public final class MyAppGlideModule extends AppGlideModule{}
Además, si ha utilizado la opción de jack, para evitar los siguientes errores similares, debe usar la vista previa de Android Studio 3.0.0.
Error: Error en la ejecución de la tarea '': aplicación: transformJackWithJackForDebug''. com.android.jack.ir.JNodeInternalError: java.lang.Exception: java.lang.AssertionError: No implementado aún
Quiero usar la biblioteca de Android Glide para descargar una imagen y mostrarla en
ImageView
.
En la versión anterior utilizamos:
Glide.with(mContext).load(imgUrl)
.thumbnail(0.5f)
.placeholder(R.drawable.PLACEHOLDER_IMAGE_NAME)
.error(R.drawable.ERROR_IMAGE_NAME)
.crossFade()
.diskCacheStrategy(DiskCacheStrategy.ALL)
.into(imageView);
Pero he visto la documentación de Glide:
dice usar
GlideApp.with()
lugar deGlide.with()
Mi preocupación es un marcador de posición perdido, error, GlideApp y otras opciones.
estoy usando
compile ''com.github.bumptech.glide:glide:4.0.0''
¿Dónde estoy haciendo mal? Con referencia a here .
¿Cómo se ha
GlideApp.with()
?
La API se genera en el mismo paquete que
AppGlideModule
y se denomina
GlideApp
de forma predeterminada.
Las aplicaciones pueden usar la API iniciando todas las cargas con
GlideApp.with()
lugar de
Glide.with()
:
GlideApp.with(fragment)
.load(myUrl)
.placeholder(placeholder)
.fitCenter()
.into(imageView);
Intente usar RequestOptions :
RequestOptions requestOptions = new RequestOptions();
requestOptions.placeholder(R.drawable.ic_placeholder);
requestOptions.error(R.drawable.ic_error);
Glide.with(context)
.setDefaultRequestOptions(requestOptions)
.load(url).into(holder.imageView);
EDITAR
Si
.setDefaultRequestOptions(requestOptions)
no funciona, use
.apply(requestOptions)
:
Glide.with(MainActivity.this)
.load(url)
.apply(requestOptions)
.into(imageview);
// or this
Glide.with(MainActivity.this)
.load(url)
.apply(new RequestOptions().placeholder(R.drawable.booked_circle).error(R.drawable.booked_circle))
.into(imageview);
// or this
Glide.with(MainActivity.this)
.load(url)
.apply(RequestOptions.placeholderOf(R.drawable.booked_circle).error(R.drawable.))
.into(imageview);
EDITAR 2 Bono
Aquí hay algunos otros cambios en Glide-4
-
Cómo usar
requestOptions.circleCropTransform();
-
Cómo usar
Cross fades()
-
Cómo usar
GlideDrawableImageViewTarget
en Glide-4 -
Cómo usar
GifDrawable
como parámetro de destino
No tenemos necesidad de usar RequestOptions también.
La API generada agrega una clase GlideApp, que proporciona acceso a las subclases RequestBuilder y RequestOptions. La subclase RequestOptions contiene todos los métodos en RequestOptions y cualquier método definido en GlideExtensions. La subclase RequestBuilder proporciona acceso a todos los métodos en la subclase RequestOptions generada sin tener que usar apply:
Usando Glide : -
Una solicitud sin la API generada podría verse así:
Glide.with(fragment)
.load(url)
.apply(centerCropTransform()
.placeholder(R.drawable.placeholder)
.error(R.drawable.error)
.priority(Priority.HIGH))
.into(imageView);
Usando GlideApp : -
Con la API generada, las llamadas de
RequestOptions
pueden integrarse:
GlideApp.with(fragment)
.load(url)
.centerCrop()
.placeholder(R.drawable.placeholder)
.error(R.drawable.error)
.priority(Priority.HIGH)
.into(imageView);
Todavía puede usar la subclase RequestOptions generada para aplicar el mismo conjunto de opciones a múltiples cargas, pero la subclase RequestBuilder generada puede ser más conveniente en la mayoría de los casos.
Si desea utilizar GlideApp, debe agregar al procesador de anotación de
dependencies
como en la captura de pantalla:
Luego incluya una implementación de AppGlideModule en su aplicación:
@GlideModule
public final class MyAppGlideModule extends AppGlideModule {}
No te olvides de la anotación
@GlideModule
.
Entonces necesitas construir un proyecto.
Y
GlideApp
se generará automáticamente.
Si desea utilizar un marcador de posición común en todas partes en su aplicación, puede hacerlo de esta manera:
Como estamos creando GlideModule de Glide v4 , puede copiar / pegar esta clase en su proyecto para poder usar la clase GlideApp (para más pasos, siga esto) :
@GlideModule
public class SampleGlideModule extends AppGlideModule {
@Override
public void applyOptions(@NonNull Context context, @NonNull GlideBuilder builder) {
super.applyOptions(context, builder);
builder.setDefaultRequestOptions(new RequestOptions().placeholder(R.drawable.logo).error(R.drawable.logo));
}
@Override
public void registerComponents(@NonNull Context context, @NonNull Glide glide, @NonNull Registry registry) {
super.registerComponents(context, glide, registry);
}
}
Puede dar todas las opciones de solicitud aquí para establecerlas como predeterminadas .
Al crear esta clase, no necesita usar
.placeholder
con
GlideApp
, se aplicará automáticamente.
Si usa las dependencias del paquete Glide,
compile ''com.github.bumptech.glide:glide:3.7.0''
, entonces debe usar el siguiente código:
GlideApp
.with(your context)
.load(url)
.centerCrop()
.placeholder(R.drawable.loading_image)
.error(R.drawable.error_image)
.into(myImageView);
Nota: como en la documentación ,
Imágenes redondas: CircleImageView / CircularImageView / RoundedImageView se sabe que tienen problemas con TransitionDrawable (.crossFade () con .thumbnail () o .placeholder ()) y GIF animados, use un BitmapTransformation (.circleCrop () estará disponible en v4) o .dontAnimate () para solucionar el problema.
La última versión actualizada
compile com.github.bumptech.glide:glide:4.1.1
luego debe usar el siguiente código:
RequestOptions options = new RequestOptions()
.centerCrop()
.placeholder(R.drawable.default_avatar)
.error(R.drawable.default_avatar)
.diskCacheStrategy(DiskCacheStrategy.ALL)
.priority(Priority.HIGH)
.dontAnimate()
.dontTransform();
Glide.with(this)
.load(url)
.apply(options)
.into(imageView);
Vea la última versión de glide, corrección de errores y características .
Trabajando
Glide.with(context!!)
.load(user.profileImage)
.apply (RequestOptions.placeholderOf(R.drawable.dummy_user))
.into(edit_profile_image)
RequestOptions options = new RequestOptions()
.placeholder(R.drawable.null_image_profile)
.error(R.drawable.null_image_profile);
//.centerCrop()
//.diskCacheStrategy(DiskCacheStrategy.ALL)
//.priority(Priority.HIGH);
Glide.with(context).load(imageUrl)
.apply(options)
.into(profileImage);