Могу ли я изменить .gif файл на растровое с помощью Glide? - PullRequest
0 голосов
/ 19 октября 2019

Могу ли я изменить .gif файл, чтобы он был растровым с помощью Glide?

Я пытаюсь загрузить gif в растровое изображение, но он показывает статическое изображение.

Glide.with(context)
            .asBitmap()
            .load(R.drawable.image)
            .into(object : CustomTarget<Bitmap>() {
                override fun onResourceReady(bitmap: Bitmap,transition: Transition<in Bitmap>?) {
                    remoteViews.setImageViewBitmap(R.id.testImage, bitmap)
                    appWidgetManager.updateAppWidget(appWidgetId, remoteViews)
                }

                override fun onLoadCleared(placeholder: Drawable?) {
                    // this is called when
                    // imageView is cleared on lifecycle call or for
                    // some other reason.
                    // if you are referencing the bitmap somewhere else too other than this imageView
                    // clear it here as you can no longer have the bitmap
                }
            })

Ответы [ 2 ]

0 голосов
/ 19 октября 2019

Glide имеет возможность загружать GIF-анимацию в ImageView. Если у вас глиссада 4+, просто измените с asBitmap() на asGif(). Но имейте в виду, что у GIF анимация потребляет довольно много памяти. Так что используйте это с умом.

0 голосов
/ 19 октября 2019

Этот код неверен, вы используете asBitmap() в Glide. Вы должны использовать asGif() вместо asBitmap().

Например -

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