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
原创粉丝点击