Android 图片视频混合轮播

201 阅读1分钟

大佬写的,我只是把他运行起来了,又按需调整了一下
github.com/AndroidFrok…

这是我修改的分支 github.com/AndroidFrok…

接收数据时 告知holder和适配器 是视频还是图片,就能自己动态加载视频或者图片了,轮播时间建议设置为20秒,视频时间不宜太长 10~20秒为妙。

private fun loadBanner(b: MutableList<AppM.DataDTO.BannerDTO>) {
   var banners = mutableListOf<CustomViewsInfo>()
   for (item in b) {
       banners.add(CustomViewsInfo(item.image, item.type))
   }

   val holderCreator = BannerHolderCreator()
   xbanner?.setBannerData1(banners, holderCreator)

   xbanner?.setOnPageChangeListener(object : OnPageChangeListener {
       override fun onPageScrolled(i: Int, v: Float, i1: Int) {

       }

       override fun onPageSelected(i: Int) {
           Log.i("onPageSelected=", i.toString() + "")
           val isVideo = banners.get(i).type == 2
           if (isVideo) {
               holderCreator.videoViewHolder.videoView.start()
           } else {
               holderCreator.videoViewHolder.videoView.pause()
           }
       }

       override fun onPageScrollStateChanged(i: Int) {
           Log.i("ScrollStateChanged=", i.toString() + "")
       }
   })
}