okhttp+banner实现自动轮播图

来源:互联网 发布:电缆设备负荷计算软件 编辑:程序博客网 时间:2024/05/24 07:21

首先我们第一步先配置:

在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) {                //在成功的方法里面 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>







原创粉丝点击