Banner轮播图的使用方法

//需要添加依赖和添加网络权限
compile'com.youth.banner:banner:1.4.9'

<!-- if you want to load images from the internet -->
<uses-permissionandroid:name="android.permission.INTERNET" />
 
<!-- if you want to load images from a file OR from the internet -->
<uses-permissionandroid:name="android.permission.READ_EXTERNAL_STORAGE" />
//控件
<com.youth.banner.Banner
    android:layout_width="match_parent"
    android:layout_height="200dp"
    android:id="@+id/banner"
    ></com.youth.banner.Banner>

//操作 
private Banner  banner;
    private List<Data.DataBean.InfosBean> list = new ArrayList<>();
//网络上请求的数据
    private String  path = "http://api.kkmh.com/v1/topic_new/discovery_list?gender=0&sa_event=eyJwcm9qZWN0Ijoia3VhaWthbl9hcHAiLCJ0aW1lIjoxNDg3ODM5MDM5MzE1LCJwcm9wZXJ0aWVzIjp7IkhvbWVwYWdlVGFiTmFtZSI6IueDremXqCIsIlZDb21tdW5pdHlUYWJOYW1lIjoi54Ot6ZeoIiwiJG9zX3ZlcnNpb24iOiI0LjIuMiIsIkdlbmRlclR5cGUiOiLlpbPniYgiLCJGcm9tRmluZENhdGVnb3J5VGFiTmFtZSI6IuWFqOmDqCIsIklzQXV0b0xvYWQiOmZhbHNlLCIkbGliX3ZlcnNpb24iOiIxLjYuMzQiLCIkbmV0d29ya190eXBlIjoiV0lGSSIsIiR3aWZpIjp0cnVlLCIkbWFudWZhY3R1cmVyIjoic2Ftc3VuZyIsIkZyb21GaW5kVGFiTmFtZSI6IuaOqOiNkCIsIiRzY3JlZW5faGVpZ2h0Ijo1NzYsIkNhdGVnb3J5Ijoi5peg5rOV6I635Y-WIiwiSG9tZXBhZ2VVcGRhdGVEYXRlIjowLCJQcm9wZXJ0eUV2ZW50IjoiUmVhZEZpbmRQYWdlIiwiRmluZFRhYk5hbWUiOiLmjqjojZAiLCJhYnRlc3RfZ3JvdXAiOjQ2LCIkc2NyZWVuX3dpZHRoIjoxMDI0LCJGaW5kQ2F0ZWdvcnlUYWJOYW1lIjoi5YWo6YOoIiwiJG9zIjoiQW5kcm9pZCIsIlRyaWdnZXJQYWdlIjoiSG9tZVBhZ2UiLCIkY2FycmllciI6IkNNQ0MiLCIkbW9kZWwiOiJHVC1QNTIxMCIsIiRhcHBfdmVyc2lvbiI6IjMuOC4xIn0sInR5cGUiOiJ0cmFjayIsImRpc3RpbmN0X2lkIjoiQTo5MDUxMDQyNzYzNzU1MTA5Iiwib3JpZ2luYWxfaWQiOiJBOjkwNTEwNDI3NjM3NTUxMDkiLCJldmVudCI6IlJlYWRGaW5kUGFnZSJ9";
//这个是固定数据的操作
//    private  String[]  images = {
//            "http://l2.51fanli.net//tuan//images//1//5806eac956808.jpg",
//            "http://l2.51fanli.net//tuan//images//b//580991bb30560.jpg",
//            "http://l0.51fanli.net//tuan//images//b//58115f2593dc3.jpg",
//            "http://l2.51fanli.net//tuan//images//0//57923840b054d.jpg",
//            "http://l2.51fanli.net//tuan//images//e//58101e11ab164.jpg"};
 private  String[] str = new String[10];
private   List<String> stringList = new ArrayList<>();
private  int position=0;
//通过handler来更新ui
    private android.os.Handler  han = new android.os.Handler(){
        @Override
        public void handleMessage(Message msg) {
//找到banner控件id
            banner = (Banner) findViewById(R.id.banner);
//调用方法
            banner.setImageLoader(new bannerGlide());
//添加图片的集合
            banner.setImages(stringList);
//设置延迟时间
            banner.setDelayTime(3000);
//是否自动轮播
            banner.isAutoPlay(true);
//开启
            banner.start();
        }
    };
    @Override
    protected void onCreate(Bundle savedInstanceState) {
       super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
//这个是遍历固定数据的集合
//        for (String s:images) {
//          stringList.add(s);
//        }
        initData();



    }

//解析网络请求的数据
    private void initData() {
        new  Thread(){
            @Override
            public void run() {
                String s = Utils.parmrs(path);
                Gson gson = new Gson();
                Data data = gson.fromJson(s, Data.class);
                List<Data.DataBean.InfosBean> infos = data.getData().getInfos();
                list.addAll(infos);
                for(Data.DataBean.InfosBean aaa:list){
                    List<Data.DataBean.InfosBean.BannersBean> banners = aaa.getBanners();
                    for (Data.DataBean.InfosBean.BannersBean  banner: banners) {
                        stringList.add(banner.getPic());
                        Log.e("-----", "run: "+banner.getPic());
                  }

                }
                han.sendEmptyMessage(0);
//                List<Data.DataBean.InfosBean.BannersBean> banners = infos.get(0).getBanners();
//
            }
        }.start();
    }
//需要继承imageLoader来操作图片的加载
    class  bannerGlide extends ImageLoader{

    @Override
    public void displayImage(Context context, Object path, ImageView imageView) {
        Glide.with(context).load(path)
                .placeholder(R.mipmap.ic_launcher)
                .into(imageView);
    }
<!-- if you want to load images from the internet -->
< uses-permission android:name = "android.permission.INTERNET" />
 
<!-- if you want to load images from a file OR from the internet -->
< uses-permission android:name = "android.permission.READ_EXTERNAL_STORAGE" />
  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
使用Android Studio中的Banner轮播图,需要按照以下步骤进行: 1. 添加依赖项 在build.gradle文件中,添加以下依赖项: ``` dependencies { implementation 'com.youth.banner:banner:2.2.1' } ``` 2. 在布局文件中添加Banner 在布局文件中,添加以下代码: ``` <com.youth.banner.Banner android:id="@+id/banner" android:layout_width="match_parent" android:layout_height="200dp"/> ``` 3. 设置Banner数据 在Activity或Fragment中,获取Banner实例,并设置数据源: ``` Banner banner = findViewById(R.id.banner); List<String> images = new ArrayList<>(); images.add("http://www.xxx.com/1.jpg"); images.add("http://www.xxx.com/2.jpg"); images.add("http://www.xxx.com/3.jpg"); banner.setImages(images); banner.start(); ``` 其中,images为Banner的数据源,可以是本地图片路径或网络图片链接。 4. 设置Banner样式和事件监听 可以通过Banner的属性和方法,设置Banner的样式和事件监听。例如: ``` banner.setBannerStyle(BannerConfig.CIRCLE_INDICATOR_TITLE_INSIDE); banner.setBannerTitles(titles); banner.setDelayTime(2000); banner.setOnBannerListener(new OnBannerListener() { @Override public void OnBannerClick(int position) { // Banner的点击事件处理 } }); ``` 其中,setBannerStyle方法可以设置Banner的样式,setBannerTitles方法可以设置Banner的标题,setDelayTime方法可以设置Banner的切换时间间隔,setOnBannerListener方法可以设置Banner的点击事件监听。 5. 运行程序 最后,运行程序,查看Banner轮播图效果。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值