首先我们第一步先配置:
在build.gradle(后面是自己model名)里配置这俩个方法
compile 'com.squareup.okhttp3:okhttp:3.9.0'compile 'com.squareup.okio:okio:1.13.0'
compile 'com.youth.banner:banner:1.4.9'banner的依赖
然后在文件中配置 okhttp和okio 导入gson包用来解析数据,和Gilde包用来做图片的
一定要记得加上网络权限
okhttp文件在这里用的是一个别人封装好的直接拿过来用的,还有bean包可以自己写
接下来就是我们的代码了
第一个是继承了
ImageLoader 用来做图片的
public class GlideImageLoader extends ImageLoader { @Override public void displayImage(Context context, Object path, ImageView imageView) { Glide.with(context).load(path).into(imageView); } } 第二个类就是mainActivity了
public class MainActivity extends AppCompatActivity { Banner banner;//new出来一个banner private List<String> list = new ArrayList<>();//定义图片的集合 private List<String> list1= new ArrayList<>();//定义文本的集合 Data da;//数据源 @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main);//主不局 banner= (Banner) findViewById(R.id.banner);//找到banner // 请求数据 出来俩个方法 OkHttpUtils.getInstance().doGet("http://120.27.23.105/ad/getAd", new OnUiCallback() { @Override public void onFailed(Call call, IOException e) { } @Override public void onSuccess(String result) { //在成功的方法里面 new出gson Gson gson=new Gson(); //gson解析 da=gson.fromJson(result, Data.class); //这里我是打印了一下得到的数据 Log.i("TAG", "onSuccess: "+da.getData().toString()); //遍历 得到没一个图片 和他对应的标题 for (int i = 0; i <da.getData().size(); i++) { list.add(da.getData().get(i).getIcon()); list1.add(da.getData().get(i).getTitle()); } //这个就是banner的设置了 //第一是设置图片 banner.setImages(list) //设置样式 .setBannerStyle(BannerConfig.CIRCLE_INDICATOR_TITLE_INSIDE) //设置标题 .setBannerTitles(list1) //设置动画 .setBannerAnimation(Transformer.Tablet) //和ImageLoader进行关联 .setImageLoader(new GlideImageLoader()) //设置时间 .setDelayTime(3000) //启动 .start(); } }); 最后的xml文件
<com.youth.banner.Banner android:id="@+id/banner" android:layout_width="match_parent" android:layout_height="200dp" android:layout_alignParentTop="true"></com.youth.banner.Banner>