package com.kuanzhai.user.ui.menu.adapter
|
|
import android.view.LayoutInflater
|
import android.view.View
|
import android.view.ViewGroup
|
import android.widget.ImageView
|
import android.widget.VideoView
|
import androidx.recyclerview.widget.RecyclerView
|
import com.facebook.drawee.drawable.ScalingUtils
|
import com.facebook.drawee.generic.GenericDraweeHierarchyBuilder
|
import com.facebook.drawee.generic.RoundingParams
|
import com.facebook.drawee.view.SimpleDraweeView
|
import com.kuanzhai.user.R
|
import com.kuanzhai.user.views.textbanner.utils.DisplayUtils
|
import com.shuyu.gsyvideoplayer.GSYVideoManager
|
import com.shuyu.gsyvideoplayer.listener.VideoAllCallBack
|
import com.shuyu.gsyvideoplayer.video.StandardGSYVideoPlayer
|
import com.youth.banner.adapter.BannerAdapter
|
|
|
class CarBannerAdapter(datas:ArrayList<String>,val hasVideo:Boolean = false): BannerAdapter<String, RecyclerView.ViewHolder>(datas){
|
var videoView:StandardGSYVideoPlayer? = null
|
override fun onCreateHolder(parent: ViewGroup, viewType: Int): RecyclerView.ViewHolder {
|
if (viewType == 2){
|
val imageView = SimpleDraweeView(parent.context)
|
//注意,必须设置为match_parent,这个是viewpager2强制要求的
|
imageView.layoutParams = ViewGroup.LayoutParams(
|
ViewGroup.LayoutParams.MATCH_PARENT,
|
ViewGroup.LayoutParams.MATCH_PARENT
|
)
|
val build = GenericDraweeHierarchyBuilder(parent.context.resources).build()
|
build.actualImageScaleType = ScalingUtils.ScaleType.CENTER_CROP
|
imageView.hierarchy = build
|
return BannerViewHolder(imageView)
|
}else{
|
val inflate = LayoutInflater.from(parent.context)
|
.inflate(R.layout.item_banner_video, parent, false)
|
val imageView = inflate.findViewById<StandardGSYVideoPlayer>(R.id.video)
|
imageView.backButton.visibility = View.GONE
|
imageView.fullscreenButton.visibility = View.GONE
|
return VideoViewHolder(inflate)
|
}
|
}
|
|
override fun getItemViewType(position: Int): Int {
|
return if (hasVideo&&getRealPosition(position) == 0) 1 else 2
|
}
|
|
override fun onBindView(holder: RecyclerView.ViewHolder, data: String, position: Int, size: Int) {
|
if (holder.itemViewType == 2)
|
(holder as BannerViewHolder).imageView.setImageURI(data)
|
else{
|
videoView = (holder as VideoViewHolder).mVideoView
|
videoView?.setUpLazy(data, true, null, null, "")
|
val gsyVideoManager = videoView?.gsyVideoManager as GSYVideoManager
|
videoView?.setVideoAllCallBack(object : VideoAllCallBack {
|
override fun onStartPrepared(url: String?, vararg objects: Any?) {
|
|
}
|
|
override fun onPrepared(url: String?, vararg objects: Any?) {
|
gsyVideoManager.isNeedMute = true
|
}
|
|
override fun onClickStartIcon(url: String?, vararg objects: Any?) {
|
}
|
|
override fun onClickStartError(url: String?, vararg objects: Any?) {
|
}
|
|
override fun onClickStop(url: String?, vararg objects: Any?) {
|
}
|
|
override fun onClickStopFullscreen(url: String?, vararg objects: Any?) {
|
}
|
|
override fun onClickResume(url: String?, vararg objects: Any?) {
|
}
|
|
override fun onClickResumeFullscreen(url: String?, vararg objects: Any?) {
|
}
|
|
override fun onClickSeekbar(url: String?, vararg objects: Any?) {
|
}
|
|
override fun onClickSeekbarFullscreen(url: String?, vararg objects: Any?) {
|
}
|
|
override fun onAutoComplete(url: String?, vararg objects: Any?) {
|
}
|
|
override fun onEnterFullscreen(url: String?, vararg objects: Any?) {
|
}
|
|
override fun onQuitFullscreen(url: String?, vararg objects: Any?) {
|
}
|
|
override fun onQuitSmallWidget(url: String?, vararg objects: Any?) {
|
}
|
|
override fun onEnterSmallWidget(url: String?, vararg objects: Any?) {
|
}
|
|
override fun onTouchScreenSeekVolume(url: String?, vararg objects: Any?) {
|
}
|
|
override fun onTouchScreenSeekPosition(url: String?, vararg objects: Any?) {
|
}
|
|
override fun onTouchScreenSeekLight(url: String?, vararg objects: Any?) {
|
}
|
|
override fun onPlayError(url: String?, vararg objects: Any?) {
|
}
|
|
override fun onClickStartThumb(url: String?, vararg objects: Any?) {
|
}
|
|
override fun onClickBlank(url: String?, vararg objects: Any?) {
|
}
|
|
override fun onClickBlankFullscreen(url: String?, vararg objects: Any?) {
|
}
|
})
|
videoView?.startPlayLogic()
|
}
|
}
|
|
class BannerViewHolder(view: SimpleDraweeView) :
|
RecyclerView.ViewHolder(view) {
|
var imageView: SimpleDraweeView
|
init {
|
imageView = view
|
}
|
}
|
|
class VideoViewHolder(view: View) :
|
RecyclerView.ViewHolder(view) {
|
var mVideoView: StandardGSYVideoPlayer
|
init {
|
mVideoView = view.findViewById(R.id.video)
|
}
|
}
|
}
|