android带视频和图片的轮播(banner)解决方案

方案只包含一个视频和多张图片,如果又多个视频的,可以修改适配器中的的播放器为一个list,并且在滑动中做相应的释放操作
一:实现一个视频和多张图片的轮播banner,使用到第三方框架有
1.轮播的基础框架youth.banner Github地址:https://github.com/youth5201314/banner
2.视频播放器gsyvideoplayer Github地址:https://github.com/CarGuo/GSYVideoPlayer
3.图片点击放大框架(非必要)image-viewer :github地址:https://github.com/SusionSuc/DraggableImageViewer
二、第三方框架引入地址

implementation 'com.youth.banner:banner:2.1.0'
implementation 'com.shuyu:GSYVideoPlayer:7.1.8'
//非必要
implementation 'com.susion:image-viewer:1.0.2'

三、解决方案组成
解决方案用到了databind去解决频繁的绑定控件ID,这里不写出来,自行了解下
1.bean类
2.banner适配器(BannerAdapter)
3.布局文件
4.主要代码

四、bean类

public class BannerBean {
   
    private boolean isVideo;
    private String url;

    public boolean isVideo() {
   
        return isVideo;
    }

    public void setVideo(boolean video) {
   
        isVideo = video;
    }

    public String getUrl() {
   
        return url;
    }

    public void setUrl(String url) {
   
        this.url = url;
    }
}

五、banner适配器(BannerAdapter)

public class MyBannerAdapter  extends BannerAdapter<MyBannerAdapter  .BannerListBean,RecyclerView.ViewHolder> {
   


    protected Context mContext;
    protected LayoutInflater mInflater;
    protected List<BannerListBean> mDataList = new ArrayList<>();
    private StandardGSYVideoPlayer myvideo=null;

    //视频
    public static final int VEDIO = 1;
    //图片
    public static final int  IMAGE= 2;

    private BannerOnclickListen listen;




    public MyBannerAdapter  (Context context,List<BannerListBean> dataList) {
   
        super(dataList);
        mContext = context;
        mDataList=dataList;
        mInflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
    }





    //通过isVedio获取返回不同的布局
    @Override
    public int getItemViewType(int position) {
   
        if (mDataList.get(position).isVedio()){
   
            return VEDIO;
        }
评论 13
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值