300字范文,内容丰富有趣,生活中的好帮手!
300字范文 > Android Banner图片轮播

Android Banner图片轮播

时间:2021-12-13 08:21:56

相关推荐

Android Banner图片轮播

Android Banner图片轮播 效果图

Banner图片轮播

一.为什么要使用Banner图片轮播? 因为现在绝大数app都有banner界面,实现循环播放多个广告图片和手动滑动循环等功能。因为ViewPager并不支持循环翻页, 所以要实现循环还得需要自己去添加。

二.Banner属性

常量

动画常量类(setBannerAnimation方法调用)

方法

Attributes属性(banner布局文件中调用)

三.接下来就是代码演示了,我这里只运用一种效果 1.依赖Banner 打开bulid.gradle添加依赖包

compile project(':banner')

2.在AndroidManifest.xml清单文件中添加权限

<!-- if you want to load images from the internet --><uses-permissionandroid:name="android.permission.INTERNET"/><!-- if you want to load images from a file OR from the internet --><uses-permissionandroid:name="android.permission.READ_EXTERNAL_STORAGE"/>

3.在主布局文件文件中添加Banner,可以设置自定义属性

<com.youth.banner.Bannerxmlns:app="/apk/res-auto"android:id="@+id/banner"android:layout_width="match_parent"android:layout_height="300dp"/>

4.在Activity或者Fragment中设置Banner 详细使用

privateBannerbanner;privateList<String>mListImage,mListTitle;@Overrideprotected voidonCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);//实例化Bannerbanner= (Banner) findViewById(R.id.banner);//设置Banner样式banner.setBannerStyle(BannerConfig.CIRCLE_INDICATOR_TITLE_INSIDE);//设置图片加载器banner.setImageLoader(newGlideImageLaoder());//实例化图片集合mListImage=newArrayList<>();//将图片放入集合中mListImage.add("http://img3./it/u=3823223463,3047520970&fm=23&gp=0.jpg");mListImage.add("/auto-a/info/images/03/8998419-10.jpg");mListImage.add("/model/5188ebc96c74dd.jpg");mListImage.add("http://img0./it/u=2631448432,2817427988&fm=214&gp=0.jpg");mListImage.add("/00/s/MzU1WDcwOQ==/%24%28KGrHqR,%21hYFDuguSMpNBQ8e+seDCQ~~60_1.JPG?set_id=880000500F");//设置Banner图片集合banner.setImages(mListImage);//设置Banner动画效果banner.setBannerAnimation(Transformer.DepthPage);//实例化Title集合mListTitle=newArrayList<>();//将标题放入集合mListTitle.add("第一张图片");mListTitle.add("第二张图片");mListTitle.add("第三张图片");mListTitle.add("第四张图片");mListTitle.add("第五张图片");//设置Banner标题集合(当banner样式有显示title时)banner.setBannerTitles(mListTitle);//设置轮播时间banner.setDelayTime(1000);//设置指示器位置(当banner模式中有指示器时)banner.setIndicatorGravity(BannerConfig.CIRCLE_INDICATOR_TITLE_INSIDE);//Banner设置方法全部调用完毕时最后调用banner.start();}

简单使用(两种方式)

@Overrideprotected voidonCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);Banner banner = (Banner) findViewById(R.id.banner);//设置图片加载器 banner.setImageLoader(newGlideImageLoader());//设置图片集合 banner.setImages(images);//banner设置方法全部调用完毕时最后调用 banner.start();}

@Overrideprotected voidonCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);Banner banner = (Banner) findViewById(R.id.banner);banner.setImages(images).setImageLoader(newGlideImageLoader()).start();}

5.重写图片加载器

public classGlideImageLoaderextendsImageLoader {@Overridepublic voiddisplayImage(Context context, Object path, ImageView imageView) {/** 注意: 1.图片加载器由自己选择,这里不限制,只是提供几种使用方法 2.返回的图片路径为Object类型,由于不能确定你到底使用的那种图片加载器, 传输的到的是什么格式,那么这种就使用Object接收和返回,你只需要强转成你传输的类型就行, 切记不要胡乱强转! */ //第一种方法:Glide 加载图片简单用法Glide.with(context).load(path).into(imageView);//第二种方法:Picasso 加载图片简单用法 //Picasso.with(context).load(path).into(imageView); //第三种方法:fresco加载图片简单用法,记得要写下面的createImageView方法 //Uri uri = Uri.parse((String) path); //imageView.setImageURI(uri); }//提供createImageView 方法,如果不用可以不重写这个方法,主要是方便自定义ImageView的创建 @OverridepublicImageView createImageView(Context context) {//使用fresco,需要创建它提供的ImageView,当然你也可以用自己自定义的具有图片加载功能的ImageView //SimpleDraweeView simpleDraweeView=new SimpleDraweeView(context);return null;}}

6.Banner优化(可选)

//如果你需要考虑更好的体验,可以这么操作@Overrideprotected voidonStart() {super.onStart();//开始轮播banner.startAutoPlay();}@Overrideprotected voidonStop() {super.onStop();//结束轮播banner.stopAutoPlay();}

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。