1、使用Android循环滚动控件——ViewFlipper实现方法:https://blog.csdn.net/meixi_android/article/details/84615857

2、使用第三方module实现方法:

需要引入的module下载链接:https://pan.baidu.com/s/1sdlQefBTfkLsNO__ouwz8w

添加module方法步骤:

(1)File----->New------>Import Module找到下载的banner文件

(2)app的build.gradle下的dependencies下添加

compile project(':banner')

2、2依赖引入方法

//广告图
implementation 'com.youth.banner:banner:1.4.10'
xmlns:app="http://schemas.android.com/apk/res-auto"
<com.youth.banner.Bannerandroid:id="@+id/banner"android:layout_width="match_parent"android:layout_height="500pt"app:image_scale_type="fit_xy"app:delay_time="5000"app:indicator_height="11pt"app:indicator_width="11pt" />

图片加载工具方法:

public class GlideImageLoader extends ImageLoader {@Overridepublic void displayImage(Context context, Object path, ImageView imageView) {Glide.with(context).load(path).error(context.getResources().getDrawable(R.mipmap.img_banner)).apply(RequestOptions.diskCacheStrategyOf(DiskCacheStrategy.ALL)).into(imageView);}
}
mBanner.setImageLoader(new GlideImageLoader());
mBanner.setBannerAnimation(Transformer.Accordion);
mBanner.setOnBannerListener(this);
private List<String> strings;
strings =  Arrays.asList(dataBean.getImgs().split(","));mBanner.setImages(strings);
mBanner.start();

如:

dependencies {compile fileTree(dir: 'libs', include: ['*.jar'])testCompile 'junit:junit:4.12'compile 'com.android.support:appcompat-v7:23+'compile 'com.android.support:recyclerview-v7:23+'compile "com.github.bumptech.glide:glide:3.7.0"compile 'com.facebook.fresco:fresco:0.12.0'compile 'com.zxy.android:recovery:0.0.8'compile project(':banner')
//    compile 'com.youth.banner:banner:+'
}

(3)settings.gradle下添加‘banner’

include ':app',':banner'

.

2、activity调用banner    Module

(1)实现接口

public class MainActivity extends AppCompatActivity implements  OnBannerListener {

(2)实现数据添加

banner.setIndicatorGravity(BannerConfig.LEFT);//指示器位置左中右
banner.updateBannerStyle(BannerConfig.NUM_INDICATOR);//标题显示与否,指示器显示与否//简单使用
banner.setImages(App.images)//图片.setBannerTitles(App.titles)//标题.setImageLoader(new GlideImageLoader()).setOnBannerListener(this).start();

(3)接口方法

@Override
public void OnBannerClick(int position) {//item图片点击Toast.makeText(getApplicationContext(),"你点击了:"+position,Toast.LENGTH_SHORT).show();
}

2、视频图片混播banner

implementation 'com.lakehubo:hbanner:1.0.8'
<com.lake.banner.HBannerandroid:id="@+id/banner"android:layout_width="match_parent"android:layout_height="match_parent"app:layout_constraintLeft_toLeftOf="parent"app:layout_constraintRight_toRightOf="parent" />
private HBanner banner;
    private void init() {banner.setBannerAnimation(Transformer.Default)//换场方式.setBannerStyle(BannerStyle.CIRCLE_INDICATOR_TITLE)//指示器模式.setCache(true)//可以不用设置,默认为true.setCachePath(getExternalFilesDir(Environment.DIRECTORY_MOVIES).getAbsolutePath() + File.separator + "hbanner").setVideoGravity(VideoGravityType.FULL_SCREEN)//视频布局方式.setImageGravity(ImageGravityType.FIT_XY)//图片布局方式.setPageBackgroundColor(Color.TRANSPARENT)//设置背景.setShowTitle(false)//是否显示标题.setViewPagerIsScroll(true)//是否支持手滑.start();List<ViewItemBean> list2 = new ArrayList<>();Uri path1 = Uri.parse("android.resource://" + getPackageName() + "/" + R.raw.default1);
//                Uri path2 = Uri.parse("android.resource://" + getPackageName() + "/" + R.raw.default2);String path2 = "http://gzlxcdg.app.xiaozhuschool.com/public/uploads/video/20200504/fa530b8ae53f8d2e7698ea0fb22d22d5.mp4";list2.add(new ViewItemBean(VIDEO, "标题1", path1, 15 * 1000));list2.add(new ViewItemBean(VIDEO, "标题2", path2, 18 * 1000));list2.add(new ViewItemBean(IMAGE, "标题3", R.mipmap.b2, 2 * 1000));banner.update(list2);}

图文混播banner方法二

依赖

//glide
implementation 'com.github.bumptech.glide:glide:4.9.0'
//图文混播
implementation 'com.github.licheedev:AdPlayer:1.0.2'
<com.licheedev.adplayer.AdViewandroid:id="@+id/ad"android:layout_width="match_parent"android:layout_height="300dp"android:background="#000000"app:ad_background_color="#000000"app:ad_enable_image_anim="true"app:ad_enable_video_anim="true"app:ad_image_scale_type="fitXY"android:layout_below="@+id/banner"android:isScrollContainer="true"app:ad_video_aspect_ratio="ratio_match_parent" />
AdView ad;private AdPlayer<AdData> mAdPlayer;
ad = (AdView) findViewById(R.id.ad);
mAdPlayer = new AdPlayer<>(ad);
String urlll = "https://gzlxcdg.https.xiaozhuschool.com/public/uploads/imgs/20200306/b23d77407c27feb9ffdc578158784589.png";
String vds = "https://gzlxcdg.https.xiaozhuschool.com/public/uploads/video/20200504/fa530b8ae53f8d2e7698ea0fb22d22d5.mp4";
String vds2 = "https://gzlxcdg.https.xiaozhuschool.com/public/uploads/imgs/20200411/6329153ceb93a706fe62abdec9cbbe57.jpeg";
List<String> urls = new ArrayList<>();
urls.add(urlll);
urls.add(vds);
urls.add(vds2);
mAdPlayer.setNewData(UrlAdData.convert(urls));
@Override
public void onResume() {super.onResume();mAdPlayer.resume();
}@Override
public void onPause() {super.onPause();mAdPlayer.pause();
}@Override
public void onDestroy() {mAdPlayer.release();super.onDestroy();
}

Android轮播图 banner,图片视频混播banner相关推荐

  1. element-ui中轮播图自适应图片高度

    哈哈,久违了各位.我又回来了,最近在做毕设,所以难免会遇到很多问题,需要解决很多问题,在万能的博友帮助下,终于解决了Element-ui中轮播图的图片高度问题,话不多说上代码. 那个axios的使用不 ...

  2. 解决v-for轮播图中图片无法显示

    v-fo中src拿不到img的地址,图片无法显示 view可以打印出list.data中的img值,说明数组没问题,已经拿到图片值: 将src直接赋值地址,有图片显示,那么就是src没有拿到图片地址: ...

  3. 安卓实现Banner轮播图自定义图片(非网络图片)

    需要一个轮播图,研究了一下,github上最好的就是这个banner了. 首先,在build.gradle中添加依赖: implementation 'com.youth.banner:banner: ...

  4. jQuery/Zepto的Bootstrap轮播图中图片自适应宽高并居中插件

    2019独角兽企业重金招聘Python工程师标准>>> 今天写了一下午带晚上的jQuery/Zepto的Bootstrap轮播图插件,功能是能够根据当前较短的一边实现自适应宽度,并且 ...

  5. 利用CSS3动画属性实现轮播图切换图片时出现附近内容抖动的解决办法。

    利用CSS的动画完成轮播图功能,切换图片时发现,在QQ浏览器上轮播图切图时会影响附近内容抖动导致看起来模糊. 如下图: 轮播图切图时下面的内容:"办公家具"."更多&qu ...

  6. 微信小程序 轮播图 swiper图片组件

    照着开发文档尝试,总是能有所收获.之前做Android开发,做个轮播图并不简单,用上viewpage再设置圆点,折腾一通之后还一堆bug.今天尝试微信小程序开发做轮播图,真是感动的泪流满面.废话说完了 ...

  7. 轮播图中间图片大,两边图片小

    简单的轮播图效果中间大图,两边小图,旋转木马平滑轮播效果 中间图片大,两边图片小的效果 效果图 <!DOCTYPE html> <html><head><me ...

  8. 解决bootstrap轮播图因为图片尺寸造成的问题

    发现问题 ​ 在使用bootstrap做轮播图时,由于图片尺寸,使得图片与轮播图结合的效果很差 ​ 解决方案 ​ 我们先找到轮播图的相关代码,如下: <div id="carousel ...

  9. bootstrap实现轮播图 --设置图片大小等于父容器大小

    运行前需要首先引入bootstrap 和jquery文件并修改图片路径 <!DOCTYPE html> <html><head><meta charset=& ...

最新文章

  1. NodeJS安全设计:好吃的草莓味糖果,只给好朋友小红
  2. Java截取最后一个/后面的所有字符
  3. 在Ubuntu Server 12.04 LTS上搭建可远程访问的Postgresql 9.1环境
  4. RANSAC与 最小二乘(LS, Least Squares)拟合直线的效果比较
  5. java 全局变量 跳出递归循环_Java技术知识点的一些总结
  6. 判断是否为二叉排序树的递归算法_左神直通BAT算法笔记(基础篇)
  7. 公司生日会生日礼物_你的生日有多受欢迎?
  8. 字节流转化为文件流_字节流转成字符串之后,在通过字符串转成字节流后的文件为什么会不一样?...
  9. 设计模式 - 七大设计原则(一)
  10. C# 大数组赋值给小数组,小数组赋值给大数组
  11. 邮件实用技巧九:如何快速查看历史邮件
  12. linux上derby数据库,体验纯Java数据库——Derby
  13. 技术分析之OGNL表达式概述
  14. you are not allowed to push code to protected branches on this project
  15. 阿里云ubuntu 创建svn服务器
  16. Worksheet Crafter Premium Edition for Mac(教学工作表制作工具)
  17. 计算机怎么看网络密码,怎么查看电脑网络连接密码 - 卡饭网
  18. Linux date 命令
  19. Second season sixth episode,Chandler and Joey lost Ross‘s baby???!!!
  20. 【C++从青铜到王者】第十八篇:C++之多态

热门文章

  1. [vue] 你有写过自定义指令吗?自定义指令的生命周期(钩子函数)有哪些?
  2. [js]JavaScript Number.toPrecision() 函数详解
  3. 前端学习(2667):退出编辑状态
  4. 工作146:webstorm持续updating indices解决方法
  5. 前端学习(2175):认识路由文件的懒加载
  6. “约见”面试官系列之常见面试题第六篇说说弹性布局(建议收藏)
  7. 前端学习(1328):服务器基础概念
  8. java学习(99):车站卖票问题
  9. linux下源码安装nginx
  10. Centos7构建NFS服务器和连接