最近项目中改版,之前的轮播图实现不是很好,这次要改掉,之后就发现了一个完美的轮播图框架。
框架的使用很简单:
步骤:
1.依赖Banner
dependencies{ compile 'com.youth.banner:banner:1.4.9' //最新版本 }
2.清单文件中添加相关的权限
<!-- 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" />
3.布局中添加Banner,设置相关的属性
<com.youth.banner.Banner android:id="@+id/banner" android:layout_width="match_parent" android:layout_height="@dimen/base185dp" android:layout_marginTop="@dimen/base3dp" android:layout_marginBottom="@dimen/base3dp" ></com.youth.banner.Banner>
4.设置图片加载器
banner.setImageLoader(new com.youth.banner.loader.ImageLoader() { @Override public void displayImage(Context context, Object path, ImageView imageView) { //此处可以自行选择,我直接用的Picasso Picasso.with(activity).load((String) path).into(imageView); } });
5.在Activity或者Fragment中配置Banner
banner.setBannerStyle(BannerConfig.CIRCLE_INDICATOR_TITLE);//设置圆形指示器与标题 banner.setIndicatorGravity(BannerConfig.RIGHT);//设置指示器位置 banner.setDelayTime(2000);//设置轮播时间 banner.setImages(images);//设置图片源 banner.setBannerTitles(titles);//设置标题源 banner.start();
至此,只需5步就完成了轮播图的实现
如果你需要点击图片进入相应的详情页,你可以使用
banner.setOnBannerListener(new OnBannerListener() { @Override public void OnBannerClick(int position) { Intent intent = new Intent(activity, PagerDetailActivity.class); intent.putExtra("urlImage",NetIp.base_url+lunbo.getList().getLunbo().get(position).getLitpic()); intent.putExtra("title", lunbo.getList().getLunbo().get(position).getTitle()); intent.putExtra("url",NetIp.home_pager_detail+"&id="+lunbo.getList().getLunbo().get(position).getId()); activity.startActivity(intent); } }
这个框架真心好用,我只是粗略写了一下使用的方法,如果你想更深入的学习,请前去