Android Banner 轮播图使用方法

示例:

   

 添加依赖:

    //图片轮播框架依赖
    implementation 'com.youth.banner:banner:1.4.9'
    //glide
    implementation 'com.github.bumptech.glide:glide:4.11.0'
    implementation 'com.commit451:PhotoView:1.2.4'
    //recyclerview
    implementation 'androidx.recyclerview:recyclerview:1.1.0'
    //viewpager2
    implementation 'androidx.viewpager2:viewpager2:1.1.0-alpha01'

布局代码***.xml:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <com.youth.banner.Banner
        android:id="@+id/banner"
        android:layout_width="300dp"
        android:layout_height="300dp"
        android:layout_centerHorizontal="true"
        android:background="@color/colorRed"
        android:layout_alignParentTop="true"/>

</RelativeLayout>

java代码: 

package com.chy.mytest.bannerTool;

import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.os.Bundle;
import android.view.Gravity;
import android.view.View;
import android.widget.RelativeLayout;

import androidx.annotation.Nullable;
import androidx.appcompat.app.AppCompatActivity;

import com.chy.mytest.R;
import com.chy.tools.ToastUtil;
import com.youth.banner.Banner;
import com.youth.banner.BannerConfig;
import com.youth.banner.Transformer;
import com.youth.banner.listener.OnBannerListener;

import java.util.ArrayList;


public class BannerActivity extends AppCompatActivity {

    private ArrayList<Integer> drawableImgList;// 轮播图图片资源
    private ArrayList<String> imageTitle;// 轮播图文字资源

    private Banner banner;

    @Override
    protected void onCreate(@Nullable Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_banner);

        initData();// 调用初始化资源
        init();// 调用视图初始化
    }

    /**
     * 初始化资源
     * */
    private void initData(){
        // 设置图片数组
        drawableImgList = new ArrayList<>();
        drawableImgList.add(R.drawable.app_logo);
        drawableImgList.add(R.mipmap.app_logo);
        drawableImgList.add(R.mipmap.app_logo);
        // 设置文字数组
        imageTitle = new ArrayList<>();
        imageTitle.add("我是logo一号");
        imageTitle.add("我是logo二号");
        imageTitle.add("我是logo三号");
    }

    /**
     * 初始化控件
     * */
    public void init(){
        banner = findViewById(R.id.banner);
        // 设置轮播图片
        banner.setBannerStyle(BannerConfig.NUM_INDICATOR)
                .setImageLoader(new MyLoader ())//设置图片加载器
                .setImages(drawableImgList)//设置图片网址或地址的集合
                .setBannerAnimation(Transformer.Default)//设置轮播的动画效果,内含多种特效,可点入方法内查找后内逐一体验
                .setBannerTitles(imageTitle)// 轮播图片的文字
                .setDelayTime(3000)//设置轮播间隔时间
                .setBannerStyle(BannerConfig.NOT_INDICATOR)// 设置banner样式
                .isAutoPlay(true)//设置是否为自动轮播,默认是“是”
                .setIndicatorGravity(BannerConfig.CENTER)//设置指示器的位置,小点点,左中右。
                .setOnBannerListener(bannerClick)//轮播图的监听
                .start();//必须最后调用的方法,启动轮播图。
    }

    /**
     * 统计图轮播图-点击事件
     * */
    OnBannerListener bannerClick = new OnBannerListener() {
        @Override
        public void OnBannerClick(int position) {
            ToastUtil.showToast(BannerActivity.this,"点击了第"+position+"张图片");
        }
    };

 //图片加载类
    private class MyLoader implements ImageLoaderInterface {
        @Override
        public void displayImage(Context context,Object path,View imageView) {
            // 加载网络图片或drawabe资源文件夹中图片
            Glide.with(mainActivity).load((String)path).into((ImageView) imageView);
            // 加载bitmap文件
            //Glide.with(mainActivity).load(bitmap).into((ImageView) imageView);
        }

        @Override
        public View createImageView(Context context) {
            return null;
        }
    }

}

  • 1
    点赞
  • 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、付费专栏及课程。

余额充值