banner轮播
来源:互联网 发布:java语言的变量命名 编辑:程序博客网 时间:2024/05/30 02:23
现在的很多app都有banner界面,实现循环播放多个广告图片和手动滑动循环等功能。因为ViewPager并不支持循环翻页, 所以要实现循环还得需要自己去动手,因此可以使用banner更为方便。先来看一下效果:
一.添加依赖banner
dependencies { compile fileTree(include: ['*.jar'], dir: 'libs') testCompile 'junit:junit:4.12' compile 'com.android.support:appcompat-v7:25.1.1' compile 'com.github.bumptech.glide:glide:3.7.0' compile 'com.youth.banner:banner:1.4.9' }
二.在清单文件中添加权限
<!-- if you want to load images from the internet --> <uses-permission android:name="android.permission.INTERNET" /> <!-- if you want to load images from a file OR from the internet --> <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
三.在XML布局中添加banner控件
<com.youth.banner.Banner xmlns:app="http://schemas.android.com/apk/res-auto" android:id="@+id/banner" android:layout_width="match_parent" android:layout_height="高度可以自己设置" />
四.重写图片加载器
private class GlideImageLoad implements ImageLoaderInterface { @Override public void displayImage(Context context, Object path, View imageView) {
//Glide加载图片 Glide.with(context).load(path).into((ImageView) imageView); Uri uri = Uri.parse((String) path); ((ImageView) imageView).setImageURI(uri); } @Override public View createImageView(Context context) { return null; } }
五.在Activity或Fragment中添加所要加载的数据资源
banner= (Banner) findViewById(R.id.banner); listUrl=new ArrayList<>(); listTitle=new ArrayList<>(); listUrl.add("http://i1.shouyou.itc.cn/2012/win8/2012/10/29/201211622345391739.png"); listUrl.add("http://dynamic-image.yesky.com/300x-/uploadImages/2014/142/45/4K87MG440MLB_500.jpg"); listUrl.add("http://att.bbs.duowan.com/month_1007/20100720_8367bb3fda85d6010db3SoXRNknuNpkF.jpg"); listTitle.add("图片1"); listTitle.add("图片2"); listTitle.add("图片3");
六.在Activity或Fragment中配置banner
//设置图片加载器 banner.setImageLoader(new GlideImageLoad()); //设置banner样式,CIRCLE_INDICATOR_TITLE_INSIDE为轮播指示器在标题的内部的右边 banner.setBannerStyle(BannerConfig.CIRCLE_INDICATOR_TITLE_INSIDE); //设置图片集合 banner.setImages(listUrl); //设置标题集合 banner.setBannerTitles(listTitle); //设置自动轮播,默认为true banner.isAutoPlay(true); //设置指示器位置(当banner模式中有指示器时) banner.setIndicatorGravity(BannerConfig.CENTER); //设置轮播时间 banner.setDelayTime(1500); //banner设置方法全部调用完毕时最后调用 banner.start();
七.(可选)
//如果你需要考虑更好的体验,可以添加这些操作 @Override protected void onStart() { super.onStart(); //开始轮播 banner.startAutoPlay(); } @Override protected void onStop() { super.onStop(); //结束轮播 banner.stopAutoPlay(); }
0 0
- banner图片轮播
- 广告轮播Banner
- banner轮播
- 首页轮播Banner
- Banner无限轮播
- Banner图片轮播
- banner轮播
- Banner无线轮播
- Banner无限轮播
- banner无限轮播
- JQuery banner轮播
- Banner实现轮播
- banner无限轮播
- Banner无限轮播
- Banner无限轮播
- banner轮播
- Banner 图片轮播
- banner图片轮播
- 算法笔记_070-BellmanFord算法简单介绍(Java)
- Android中的Service:Binder,Messenger,AIDL(2)
- 310. Minimum Height Trees
- Java —— static 修饰的方法不可以覆盖
- 如何用MAVLink Generator (C/C++, Python)新增一条新消息
- banner轮播
- mil与mm的转换
- android 自定义view(1)
- jquery的$(this)理解
- Android开发笔记之图形渲染(Shader)
- 算法13:检查一个表达式中的括号是否合法,括号包括 {, [, (, ), ], }
- POJ 3687 Labeling Balls (逆向拓扑排序)
- jsoup Cookbook——设置属性的值
- springmvc总结