Intereting Posts
FindFragmentByTag – поиск фрагмента в FragmentTabHost – всегда null Сбой Android-приложений на телефонах HTC и Sony Ericsson Получите информацию о беспроводной зарядке Как установить LinearLayout в нижней части FrameLayout программно? Java.lang.IncompatibleClassChangeError при включении espresso-contrib: 2.0 Пользовательская кнопка в XML Метод IOAcknowledge НЕ работает для SocketIO в Android? Доступ к упорядоченным изображениям и видео в том же курсоре Как скрыть панель действий / панель инструментов при прокрутке вниз в веб-представлении Как управлять файлами на портативном устройстве MTP? Android install apk с Intent.VIEW_ACTION не работает с поставщиком файлов Fixed-Point-Math – Является ли преобразование из безопасного поплавка, чтобы всегда давать тот же результат? Переопределите RelationLayout's onMeasure (), чтобы ограничить его соотношение сторон Проверьте, доступно ли приложение на Android Маркете Не удалось разрешить активную зависимость андроида в Gradle, когда Active Android включен в библиотеку

Показать 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);