Intereting Posts
Лучшая практика для AVRCP на Android (отправка метаданных на устройство bluetooth) Какие виды автоматически сохраняются при изменении конфигурации Переопределить макет xml из фреймворка android Как изменить цвет кнопки цвета при нажатии на Android? Android Alarm Manager с широковещательным приемником, зарегистрированным в коде, а не манифестацией Выравнивание макета стола Android Воссоздание объекта камеры после ошибки 100 (сервер камеры скончался) Как закодировать операцию «синхронизация сейчас» на Android? Android JNI: вызывающий корень deadd00d (dvmAbort) Как использовать MediaCodec без MediaExtractor для H264 TaskCompletionSource и отклонение причин, по которым не отображаются несколько настраиваемых alertdialogs Какие языки программирования могут использоваться для разработки в Android? Что кодировать для уведомления придерживаться, пока музыка не перестанет играть «Не удалось отправить ответ отладчику: Broken pipe» при попытке запустить приложение на Android-устройстве Сторона сервера Routeboxer

Показать GIF-файл с помощью Glide (библиотека загрузки изображений и кеширования)

Я пытаюсь показать изображение GIF как загрузку заполнителя в представлении изображения – с помощью библиотеки Glide :

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

Я пытаюсь показать этот файл

loading2.gif

Но получите эту ошибку:

Ошибка: (54, 86) ошибка: не удается найти метод символов asGif ()

Как показать GIF-файл с помощью Glide в imageView?

Вышеприведенный ответ не помог мне. Ниже приведен код.

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

Для Glide 3.0 вам нужно установить asGif () раньше:

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

Имейте в виду, что просто использование load() будет загружать GIF или Bitmap в зависимости от типа данных. Если вы не хотите, чтобы ваш груз вышел из строя, если данный URL не является gif, вам не нужно указывать asGif()

С Glide 4.0.0-RC0

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

Попробуй это. Он работал для меня и будет работать и для вашего кода. Он работает как для изображений, так и для gif.

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

Это решение – вроде работа

 <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. Вместо использования одного используйте 2 ImageViews

  2. Загрузите gif в первый ImageView, используя решение, данное @Preetam

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

  3. Загрузите изображение из сети во втором ImageView (заказ важен, если вы не хотите скрывать загрузку gif после загрузки изображения из сети)

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

У меня была такая же проблема. Вы можете решить эту проблему, переместившись туда, где находится asGif() . Он должен появиться непосредственно перед .load() .

Итак, измените:

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

в

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

Вот лучший способ

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