参考网址: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);*/ }}