studio para imagenes glide galeria example error ejemplo developer android android-layout android-glide

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 de Glide.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


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);