1500字范文,内容丰富有趣,写作好帮手!
1500字范文 > Android Banner实现图片轮播

Android Banner实现图片轮播

时间:2024-01-17 06:32:17

相关推荐

Android Banner实现图片轮播

Banner

首先导入应用的依赖:

implementation 'com.youth.banner:banner:1.4.9'implementation 'com.nostra13.universalimageloader:universal-image-loader:1.9.5'implementation 'com.github.bumptech.glide:glide:3.7.0'

布局文件:

<com.youth.banner.Bannerandroid:id="@+id/banner"android:layout_width="match_parent"android:layout_height="200dp"/>

自定义一个Banner类

/*** @author 拉莫帅* @date /12/19* @address* @Desc MyBanner*/public class MyBanner extends ImageLoader {public void displayImage(Context context, Objectpath, ImageView imageView) {//path表示当前要显示的图片的url,,imageView表示当前要显示图片的载体Glide.with(context).load((String) path).into(imageView);}}

这里在在导包的时候,需要注意一下,要不然会一直提示报错

ImageLoader导包文件为import com.youth.banner.loader.ImageLoader

如果发现导包为import com.nostra13.universalimageloader.core.ImageLoader是错误的

MainActivity具体实现方法

方式一:加载网络图片

/*** 设置图片路径*/String url1 = "https://img-/8e23f386d81f4ceb8575538f83ddbf16.webp";String url2 = "https://img-/c9af0c32506c4dcab67d3690cc97a6ba.webp";String url3 = "https://img-/c2f4b04aa9304cbaa516173a3394a02b.webp";String url4 = "https://img-/404ae89ac0464058b7d43a65ab106825.webp";String url5 = "https://img-/b6ec431cc199435b92fdf7f551b5ebf7.webp";

在新建一个list集合,把图片添加到集合中

/**** new一个list集合*/List<String> list = new ArrayList<>();list.add(url1);list.add(url2);list.add(url3);list.add(url4);list.add(url5);/**** 设置Glide图片加载器*/banner.setImageLoader(new MyBanner());//设置banner圆角//banner.setOutlineProvider(new ViewOutlineProvider() {//@Override//public void getOutline(View view, Outline outline) {//outline.setRoundRect(0, 0, view.getWidth(), view.getHeight(), 30);//}//});//banner.setClipToOutline(true);/**** 设置图片资源*/banner.setImages(list);banner.start();//执行

方式二:加载本地图片

/**** new一个list集合*/List<String> list = new ArrayList<>();list.add(R.drawable.banner1);list.add(R.drawable.banner2);list.add(R.drawable.banner3);list.add(R.drawable.banner4);list.add(R.drawable.banner5);/**** 设置Glide图片加载器*/banner.setImageLoader(new MyBanner());//设置banner圆角//banner.setOutlineProvider(new ViewOutlineProvider() {//@Override//public void getOutline(View view, Outline outline) {//outline.setRoundRect(0, 0, view.getWidth(), view.getHeight(), 30);//}//});//banner.setClipToOutline(true);/**** 设置图片资源*/banner.setImages(list);banner.start();//执行

结尾

如果想要代码设置banner属性

//设置图片标题: 标题和地址相对应(根据自己需求定义)String[] titles=new String[]{"十大星级品牌联盟,全场2折起","全场2折起","十大星级品牌联盟","嗨购5折不要停","12趁现在"};/*** 设置内置样式* NOT_INDICATOR 不显示小圆点* CIRCLE_INDICATOR 显示小圆点* NUM_INDICATOR 轮播图右下角1/5 按比例显示** 校验title和image的数量* CIRCLE_INDICATOR_TITLE 显示小圆点(居中显示)* CIRCLE_INDICATOR_TITLE_INSIDE 显示小圆点(右下角显示)* NUM_INDICATOR_TITLE 轮播图右下角1/5 按比例显示*/banner.setBannerStyle(BannerConfig.CIRCLE_INDICATOR_TITLE_INSIDE);//设置图片加载器,图片加载器在下方banner.setImageLoader(new MyBanner());//设置图片网址或地址的集合banner.setImages(list);//设置轮播的动画效果,内含多种特效,可点入方法内查找后内逐一体验banner.setBannerAnimation(Transformer.Default);//设置轮播图的标题集合banner.setBannerTitles(Arrays.asList(titles));//设置轮播间隔时间banner.setDelayTime(3000);//设置是否为自动轮播,默认是“是”。banner.isAutoPlay(true);//设置指示器的位置,小点点,左中右。banner.setIndicatorGravity(BannerConfig.CENTER)//必须最后调用的方法,启动轮播图。.start();//设置轮播图监听,下标是从0开始banner.setOnBannerListener(new OnBannerListener() {@Overridepublic void OnBannerClick(int position) {Log.e("banner", "OnBannerClick: " + position );}});

如果我们在以上代码设置banner属性中,不想设置轮播图的标题集合,会报以下错误

解决办法:

我们设置banner设置内置样式的属性问题:

CIRCLE_INDICATOR_TITLE_INSIDE校验title和image的数量

更换样式就可以了 类如:CIRCLE_INDICATOR

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