播放 GIF 时使用率高 CPU

High CPU usage when playing GIFs

我在 RecyclerView 中显示 GIF。代码:

Glide.with(acitivity)
  .load(url)
  .placeholder(R.drawable.image_placeholder)
  .diskCacheStrategy(DiskCacheStrategy.SOURCE)
  .listener(listener)
  .into(viewHolder.imageView);

如果我将包含此 RecyclerView 的片段保持打开状态,则应用程序会使用大量 CPU (~40%)。如果我使用 Fragment 1-2 分钟,phone 会升温。 GIF 是正常的吗?我做错了什么吗?

在 Github 上得到了 Glide 贡献者的回应。这是他们所说的 -

High CPU consumption is normal. Glide does this to save memory and eventually the evil OOM Exceptions.

建议 -

  1. Use static Bitmap image for preview, avoid auto-play.
  2. Use timeout or setLoopCount on GlideDrawable/GifDrawable

更多:https://github.com/bumptech/glide/issues/1029

编辑:

如果您使用的是 ViewPager,请检查此问题:https://github.com/bumptech/glide/issues/1028