参考网址:https://github.com/search(很详细)
使用步骤:
1.在build.gradle中加入包,点击右上角的同步:
compile 'com.youth.banner:banner:1.4.9'
2.添加权限到你的 AndroidManifest.xm
<uses-permission android:name="android.permission.INTERNET"> </uses-permission>
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"></uses-permission>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"></uses-permission>
3.在布局文件中添加Banner,可以设置自定义属性
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
>
<com.youth.banner.Banner
android:id="@+id/ban"
android:layout_width="match_parent"
android:layout_height="250dp">
</com.youth.banner.Banner>
</LinearLayout>
4.写一个图片加载器类并继承ImageLoader
//定义的一个Bannerde 图片加载器,继承ImageLoader
public class BannerImageLoad extends ImageLoader{
//在该方法内用Glide进行加载图片
@Override
public void displayImage(Context context, Object path, ImageView imageView) {
Glide.with(context).load(path).into(imageView);
}
}
5.在Activity或者Fragment中配置Banner(这里是在一个Fragment中进行配置的)
public class Fragment1 extends Fragment {
private Banner ban;
private String urlpath="http://zkread.com/htnewsroom/articles/tops";
private Handler hand=new Handler(){
@Override
public void handleMessage(Message msg) {
if(msg.what==1){
//用Gson解析数据并得到该数据的类
Gson gson=new Gson();
News news = gson.fromJson(msg.obj.toString(), News.class);
//得到要展示的图片和标题的类的集合并遍历
List<News.DataBean> data = news.getData();
//新建一个存放图片的集合和标题的集合
ArrayList<String> images=new ArrayList<>();
ArrayList<String> title=new ArrayList<>();
//遍历完后把相应的数据添加到集合中
for (News.DataBean bean:data){
images.add(bean.getImgSrc());
title.add(bean.getTitle());
}
//将图片和标题设置到Banner中
ban.setImages(images);
ban.setBannerTitles(title);
//开启Banner
ban.start();
}
}
};
@Nullable
@Override
public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.fragment1, container, false);
ban=(Banner)view.findViewById(R.id.ban);
//设置Banner
initview();
//加载网络数据
loaddata();
return view;
}
private void loaddata() {
new Thread(){
@Override
public void run() {
//HttpUrl为一个写好的通过HttpUrlConnection对网络进行请求的类(里面有get和post请求)
String str = HttpUrl.getUrlConnect(urlpath);
Message msg=new Message();
msg.what=1;
msg.obj=str;
hand.sendMessage(msg);
}
}.start();
}
private void initview() {
//设置图片加载器
BannerImageLoad bil=new BannerImageLoad();
ban.setImageLoader(bil);
//设置显示样式(显示数字指示器和标题)
ban.setBannerStyle(BannerConfig.NUM_INDICATOR_TITLE);
/*
//设置banner样式
banner.setBannerStyle(BannerConfig.CIRCLE_INDICATOR_TITLE);
//设置图片加载器
banner.setImageLoader(new GlideImageLoader());
//设置图片集合
banner.setImages(images);
//设置banner动画效果
banner.setBannerAnimation(Transformer.DepthPage);
//设置标题集合(当banner样式有显示title时)
banner.setBannerTitles(titles);
//设置自动轮播,默认为true
banner.isAutoPlay(true);
//设置轮播时间
banner.setDelayTime(1500);
//设置指示器位置(当banner模式中有指示器时)
banner.setIndicatorGravity(BannerConfig.CENTER);
*/ }}