Android轮播图 banner,图片视频混播banner
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相关推荐
- element-ui中轮播图自适应图片高度
哈哈,久违了各位.我又回来了,最近在做毕设,所以难免会遇到很多问题,需要解决很多问题,在万能的博友帮助下,终于解决了Element-ui中轮播图的图片高度问题,话不多说上代码. 那个axios的使用不 ...
- 解决v-for轮播图中图片无法显示
v-fo中src拿不到img的地址,图片无法显示 view可以打印出list.data中的img值,说明数组没问题,已经拿到图片值: 将src直接赋值地址,有图片显示,那么就是src没有拿到图片地址: ...
- 安卓实现Banner轮播图自定义图片(非网络图片)
需要一个轮播图,研究了一下,github上最好的就是这个banner了. 首先,在build.gradle中添加依赖: implementation 'com.youth.banner:banner: ...
- jQuery/Zepto的Bootstrap轮播图中图片自适应宽高并居中插件
2019独角兽企业重金招聘Python工程师标准>>> 今天写了一下午带晚上的jQuery/Zepto的Bootstrap轮播图插件,功能是能够根据当前较短的一边实现自适应宽度,并且 ...
- 利用CSS3动画属性实现轮播图切换图片时出现附近内容抖动的解决办法。
利用CSS的动画完成轮播图功能,切换图片时发现,在QQ浏览器上轮播图切图时会影响附近内容抖动导致看起来模糊. 如下图: 轮播图切图时下面的内容:"办公家具"."更多&qu ...
- 微信小程序 轮播图 swiper图片组件
照着开发文档尝试,总是能有所收获.之前做Android开发,做个轮播图并不简单,用上viewpage再设置圆点,折腾一通之后还一堆bug.今天尝试微信小程序开发做轮播图,真是感动的泪流满面.废话说完了 ...
- 轮播图中间图片大,两边图片小
简单的轮播图效果中间大图,两边小图,旋转木马平滑轮播效果 中间图片大,两边图片小的效果 效果图 <!DOCTYPE html> <html><head><me ...
- 解决bootstrap轮播图因为图片尺寸造成的问题
发现问题 在使用bootstrap做轮播图时,由于图片尺寸,使得图片与轮播图结合的效果很差 解决方案 我们先找到轮播图的相关代码,如下: <div id="carousel ...
- bootstrap实现轮播图 --设置图片大小等于父容器大小
运行前需要首先引入bootstrap 和jquery文件并修改图片路径 <!DOCTYPE html> <html><head><meta charset=& ...
最新文章
- NodeJS安全设计:好吃的草莓味糖果,只给好朋友小红
- Java截取最后一个/后面的所有字符
- 在Ubuntu Server 12.04 LTS上搭建可远程访问的Postgresql 9.1环境
- RANSAC与 最小二乘(LS, Least Squares)拟合直线的效果比较
- java 全局变量 跳出递归循环_Java技术知识点的一些总结
- 判断是否为二叉排序树的递归算法_左神直通BAT算法笔记(基础篇)
- 公司生日会生日礼物_你的生日有多受欢迎?
- 字节流转化为文件流_字节流转成字符串之后,在通过字符串转成字节流后的文件为什么会不一样?...
- 设计模式 - 七大设计原则(一)
- C# 大数组赋值给小数组,小数组赋值给大数组
- 邮件实用技巧九:如何快速查看历史邮件
- linux上derby数据库,体验纯Java数据库——Derby
- 技术分析之OGNL表达式概述
- you are not allowed to push code to protected branches on this project
- 阿里云ubuntu 创建svn服务器
- Worksheet Crafter Premium Edition for Mac(教学工作表制作工具)
- 计算机怎么看网络密码,怎么查看电脑网络连接密码 - 卡饭网
- Linux date 命令
- Second season sixth episode,Chandler and Joey lost Ross‘s baby???!!!
- 【C++从青铜到王者】第十八篇:C++之多态
热门文章
- [vue] 你有写过自定义指令吗?自定义指令的生命周期(钩子函数)有哪些?
- [js]JavaScript Number.toPrecision() 函数详解
- 前端学习(2667):退出编辑状态
- 工作146:webstorm持续updating indices解决方法
- 前端学习(2175):认识路由文件的懒加载
- “约见”面试官系列之常见面试题第六篇说说弹性布局(建议收藏)
- 前端学习(1328):服务器基础概念
- java学习(99):车站卖票问题
- linux下源码安装nginx
- Centos7构建NFS服务器和连接