usar studio que implementar imagenes glide example documentacion developer como cargar android imageview gif android-glide

que - implementar glide android studio



Mostrar archivo GIF con Glide(biblioteca de carga y almacenamiento en caché de imágenes) (12)

Intento mostrar una imagen GIF como marcador de posición de carga en la vista de imagen, con Glide Library :

Glide.with(context) .load(ImageUrl()) .placeholder(R.drawable.loading2) .asGif() .crossFade() .into(image);

Intento mostrar este archivo

loading2.gif

pero obtén este error:

Error: (54, 86) error: no se puede encontrar el método de símbolo asGif ()

¿Cómo puedo mostrar un archivo GIF con Glide en una imageView?


Aquí está la mejor manera

Glide.with(a).load(item[position]) .thumbnail(Glide.with(a).load(R.drawable.preloader)) .fitCenter() .crossFade() .into(imageView);


Aquí hay otro ejemplo. He observado que Glide no juega Gif automáticamente a veces. Esta solución funcionó para mí:

En el ejemplo, imageView es uno de los miembros de la clase ViewHolder de RecyclerView.

Glide.with(itemView.getContext()) .asGif() .load(thumbPath) .placeholder(ResourcesCompat.getDrawable(context.getResources(), R.drawable.image_loading_placeholder, null)) .centerCrop() .into(new ImageViewTarget<GifDrawable>(imageView) { @Override protected void setResource(@Nullable GifDrawable resource) { imageView.setImageDrawable(resource); } });

El método .asGif () debe usarse antes o no se reconocerá


Desde Glide versión v4:

Dependencia:

implementation ''com.github.bumptech.glide:glide:4.8.0'' annotationProcessor ''com.github.bumptech.glide:compiler:4.8.0''

Visita este enlace Para crear la clase GlideApp :

Puede proporcionar directamente una referencia GlideApp en GlideApp

GlideApp.with(this).load(R.drawable.ic_loader).into(mBinding.progressBar);

Si obtiene algún error, hágamelo saber.


Esta solución es un tipo de solución

<RelativeLayout android:layout_width="wrap_content" android:id="@+id/ImageContainer" android:background="#fff" android:layout_height="wrap_content"> <ImageView android:layout_width="wrap_content" android:id="@+id/loadingImageView" android:layout_centerInParent="true" android:layout_height="wrap_content"/> <ImageView android:id="@+id/mainImageView" android:layout_width="match_parent" android:layout_height="match_parent" android:scaleType="centerCrop" android:layout_centerInParent="true" /> </RelativeLayout>

  1. en lugar de usar uno, use 2 ImageViews

  2. Ponga cargando gif en primer ImageView usando la solución dada por @Preetam

    ImageView loadingImageView = (ImageView) findViewById(R.id.loadingImageView); GlideDrawableImageViewTarget loadingImageViewTarget = new GlideDrawableImageViewTarget(loadingImageView); Glide.with(this).load(R.raw.spinner).into(loadingImageViewTarget);

  3. Cargue la imagen de la red en el segundo ImageView (el orden es importante si no desea ocultar el gif de carga una vez que se carga la imagen de la red)

    ImageView mainImageView = (ImageView) findViewById(R.id.mainImageView); GlideDrawableImageViewTarget mainImageViewTarget = new GlideDrawableImageViewTarget(mainImageView); Glide.with(this).load(imageUrl).into(mainImageViewTarget);


La respuesta anterior no funcionó para mí. El siguiente código funciona.

ImageView imageView = (ImageView) findViewById(R.id.imageView); GlideDrawableImageViewTarget imageViewTarget = new GlideDrawableImageViewTarget(imageView); Glide.with(this).load(R.raw.sample_gif).into(imageViewTarget);


Para Glide 3.0, debe establecer asGif () anteriormente:

Glide.with(context) .load(imageUrl) .asGif() .placeholder(R.drawable.loading2) .crossFade() .into(imageView);

Tenga en cuenta que solo usando load() se cargará un GIF o un mapa de bits según el tipo de datos. A menos que desee que su carga falle si la url dada no es un gif, no necesita especificar asGif()


Para Glide 4. +

ImageView imageView = (ImageView) findViewById(R.id.imageView); Glide.with(this).asGif().load(R.raw.image_gif).into(imageView);


Prueba esto. Funcionó para mí y también funcionará para su código. Funciona tanto para imágenes como para gifs.

ImageView imageView = (ImageView) findViewById(R.id.test_image); GlideDrawableImageViewTarget imagePreview = new GlideDrawableImageViewTarget(imageView); Glide .with(this) .load(url) .listener(new RequestListener<String, GlideDrawable>() { @Override public boolean onException(Exception e, String model, Target<GlideDrawable> target, boolean isFirstResource) { return false; } @Override public boolean onResourceReady(GlideDrawable resource, String model, Target<GlideDrawable> target, boolean isFromMemoryCache, boolean isFirstResource) { return false; } }) .into(imagePreview); }


Utilice GlideDrawableImageViewTarget. Este código me funciona.

GlideDrawableImageViewTarget imageViewTarget = new GlideDrawableImageViewTarget(imageView); Glide.with(this).load(R.drawable.logo_gif).into(imageViewTarget);


Yo tuve el mísmo problema. Puede resolverlo moviéndose donde se encuentra el asGif() . Debe venir directamente antes de .load() .

Entonces cambia:

Glide.with(context) .load(ImageUrl()) .placeholder(R.drawable.loading2) .asGif() ....

a

Glide.with(context) .asGif() .load(ImageUrl()) .placeholder(R.drawable.loading2) ....


Glide reproduce automáticamente archivos GIF animados, sin necesidad de un método adicional

Use el siguiente código

Glide.with(this) .load(R.drawable.logo) .into(imageView);


Instead of GlideDrawableImageViewTarget use DrawableImageViewTarget ImageView imageView =findViewById(R.id.imageView); DrawableImageViewTarget imageViewTarget = new DrawableImageViewTarget (imageView); Glide.with(this).load(R.raw.image_loader).into(imageViewTarget); library: implementation ''com.github.bumptech.glide:glide:4.8.0'' annotationProcessor ''com.github.bumptech.glide:compiler:4.8.0''