android-轮播图插件banner的使用

今天学习banner的使用
在这里插入图片描述
一、添加banner的依赖,youth下的

implementation 'com.youth.banner:banner:1.4.10'

二、xml布局添加banner控件

在这里插入图片描述
三、主逻辑代码
1、拿到控件
2、初始化轮播图数据,标题数据。网络数据本地数据都行
我这里imgs是图片数据,titles时标题数据
在这里插入图片描述
3、设置banner
图片加载器我用glide

    private void banner() {
//        这是图片加载器
        banner.setImageLoader(new ImageLoader() {
            @Override
            public void displayImage(Context context, Object path, ImageView imageView) {
                Glide.with(context).load(path).into(imageView);
            }
        });
//                设置轮播样式
           banner.setBannerStyle(BannerConfig.CIRCLE_INDICATOR_TITLE_INSIDE);
//                设置切换动画
        banner.setBannerAnimation(Transformer.CubeOut);
//           设置切换时间
        banner.setDelayTime(1000);
//        设置图片数据
        banner.setImages(imgs);
//        设置标题样式
        banner.setBannerTitles(titles);
//        开始
        banner.start();
    }

4、banner轮播图的点击事件由setonBannerListener实现

banner.setOnBannerListener(new OnBannerListener() 

结:主代码如下

package com.yangpeilin.myview;

import androidx.appcompat.app.AppCompatActivity;

import android.content.Context;
import android.os.Bundle;
import android.widget.ImageView;
import android.widget.Toast;

import com.bumptech.glide.Glide;
import com.youth.banner.Banner;
import com.youth.banner.BannerConfig;
import com.youth.banner.Transformer;
import com.youth.banner.listener.OnBannerListener;
import com.youth.banner.loader.ImageLoader;

import java.util.ArrayList;
import java.util.List;

public class BannerDemoActivity extends AppCompatActivity {

    private Banner banner;
    private List<Integer> imgs;
    private List<String> titles;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_banner_demo);
        //初始化控件
        initview();
        //初始化数据
        initData();
        //banner设置
        banner();
//        banner的点击事件
        bannerListener();
    }

    private void bannerListener() {
        banner.setOnBannerListener(new OnBannerListener() {
            @Override
            public void OnBannerClick(int position) {
                switch (position){
                    case 0:
                        MyToast(1);
                        break;
                    case 1:
                        MyToast(2);
                        break;
                    case 2:
                        MyToast(3);
                        break;
                    case 3:
                        MyToast(4);
                        break;
                    case 4:
                        MyToast(5);
                        break;
                }
            }
        });
    }
    public void  MyToast(int i){
        Toast.makeText(this,"这是第"+i+"张图片",Toast.LENGTH_SHORT).show();
    }

    private void banner() {
//        这是图片加载器
        banner.setImageLoader(new ImageLoader() {
            @Override
            public void displayImage(Context context, Object path, ImageView imageView) {
                Glide.with(context).load(path).into(imageView);
            }
        });
//                设置轮播样式
           banner.setBannerStyle(BannerConfig.CIRCLE_INDICATOR_TITLE_INSIDE);
//                设置切换动画
        banner.setBannerAnimation(Transformer.CubeOut);
//           设置切换时间
        banner.setDelayTime(1000);
//        设置图片数据
        banner.setImages(imgs);
//        设置标题样式
        banner.setBannerTitles(titles);
//        开始
        banner.start();
    }

    private void initData() {
        imgs = new ArrayList<>();
        titles = new ArrayList<>();
        imgs.add(R.drawable.phone1);
        imgs.add(R.drawable.phone2);
        imgs.add(R.drawable.phone3);
        imgs.add(R.drawable.phone4);
        imgs.add(R.drawable.phone5);
        for (int i = 1; i <= 5; i++) {
            titles.add("这是第"+i+"张图片");
        }
    }

    private void initview() {
        banner = this.findViewById(R.id.banner_demo);
    }
}
  • 2
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 5
    评论
Android中,可以使用第三方库来实现轮播图效果,其中一个常用的库是Banner。在使用Banner库时,可以通过设置一些属性来自定义轮播图的效果。例如,可以设置轮播间隔时间、轮播图的圆角等属性。\[1\] 此外,还可以设置轮播图的样式,内置样式有多种可供选择,可以根据需求进行设置。可以设置图片的加载方式,设置图片的网址或地址集合,设置轮播图的标题集合等。还可以设置是否自动轮播、显示器的位置等。\[2\] 如果想要实现一个简单的轮播图效果,可以使用Banner框架提供的BannerImageAdapter适配器。可以通过设置适配器来加载轮播图的数据,并在适配器中设置图片的显示方式。\[3\] 总结起来,使用Banner库可以方便地实现Android中的轮播图效果,通过设置属性和适配器来自定义轮播图的样式和数据。 #### 引用[.reference_title] - *1* *3* [Android---Banner轮播图](https://blog.csdn.net/qq_44950283/article/details/128390186)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^koosearch_v1,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* [Android入门Banner轮播图使用(详解)](https://blog.csdn.net/m0_53223811/article/details/122562021)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^koosearch_v1,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值