最近项目中改版,之前的轮播图实现不是很好,这次要改掉,之后就发现了一个完美的轮播图框架。
框架的使用很简单:
步骤:
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);
}
}
这个框架真心好用,我只是粗略写了一下使用的方法,如果你想更深入的学习,请前去