首先我们第一步先配置:


在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+banner实现自动轮播图
一定要记得加上网络权限

okhttp文件在这里用的是一个别人封装好的直接拿过来用的,还有bean包可以自己写
okhttp+banner实现自动轮播图

接下来就是我们的代码了
第一个是继承了
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) {
                //在成功的方法里面 newgson
                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>







相关文章: