zhpanvip / BannerViewPager

🚀 An awesome banner view for Android,Based on ViewPager2. 这可能是全网最好用的ViewPager轮播图。简单、高效,一行代码实现循环轮播,一屏三页任意变,指示器样式任你挑。
Apache License 2.0
3.57k stars 434 forks source link

GIF not working #259

Closed AlaaZarifa closed 2 years ago

AlaaZarifa commented 2 years ago

In my use case some of the images are GIF and I use Glide to play them but it only show a still image or a frame.

 override fun bindData(
        holder: BaseViewHolder<HomeSlider>,
        data: HomeSlider?,
        position: Int,
        pageSize: Int
    ) {
        val imageView: RoundedImageView = holder.findViewById(R.id.imageView)
        if (data?.image?.contains("gif", true)!!) {
            Glide.with(context)
                .asGif()
                .load(data.image)
                .into(imageView)
        } else {
            Glide.with(context)
                .load(data.image)
                .into(imageView)
        }
    }
zhpanvip commented 2 years ago

Check if the problem is with your GIF image, I tested it and it's OK with the following code:


  @Override
  protected void bindData(BaseViewHolder<BannerData> holder, BannerData data, int position,
      int pageSize) {
    if (getViewType(position) == BannerData.TYPE_NEW) {
      holder.setImageResource(R.id.image_view, data.getDrawable());
    } else {
      ImageView imageView = holder.findViewById(R.id.banner_image);
      Glide.with(imageView)
          .asGif()
          .load("https://ss2.baidu.com/-vo3dSag_xI4khGko9WTAnF6hhy/baike/s=220/sign=b1889182d01b0ef468e89f5cedc551a1/cefc1e178a82b9015fda1a9f718da9773912ef23.jpg")
          .placeholder(R.drawable.placeholder)
          .into(imageView);
    }
  }