示例:
添加依赖:
//图片轮播框架依赖
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;
}
}
}