学习笔记Android轮播图框架Banner

本文介绍了一种简单的Android轮播图实现方法,包括添加依赖、权限配置、布局设置及Activity中初始化轮播图等步骤,并提供了多种图片资源加载方式。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Android轮播图简单实现

1. 添加依赖项

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

implementation 'com.github.bumptech.glide:glide:4.9.0'
annotationProcessor 'com.github.bumptech.glide:compiler:4.9.0'

2. 添加权限到 AndroidManifest.xml

<!-- 网络图片需要获取网络权限 -->
<uses-permission android:name="android.permission.INTERNET" /> 
<!-- 本地图片文件读写权限获取 -->
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />

3. 布局文件

使用ConstraintLayout可以很方便的设置内部控件的长宽比例,感兴趣的可以了解一下

<android.support.constraint.ConstraintLayout
    android:layout_width="match_parent"
    android:layout_height="match_parent">
    <com.youth.banner.Banner
         android:id="@+id/banner_home"
         android:layout_width="0dp"
         android:layout_height="0dp"
         app:layout_constraintDimensionRatio="16:7"
         app:layout_constraintLeft_toLeftOf="parent"
         app:layout_constraintRight_toRightOf="parent" />
</android.support.constraint.ConstraintLayout>

4. Activity

protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    Banner banner=findViewById(R.id.banner_home);
    //创建图片集合
    List<String>images = new ArrayList<>();
    images.add("我是图片外链");
    images.add("我是图片外链");
    images.add("我是图片外链");

    banner.setImages(images)//设置图集
          .setDelayTime(3000)//轮播间隔时间
          .setImageLoader(new GlideImageLoader())//设置图片加载器
          .start();

}
//图片加载器
public class GlideImageLoader extends ImageLoader {
    @Override
    public void displayImage(Context context, Object path, ImageView imageView) {
        Glide.with(context).load(path).into(imageView);
    }
}

------更多详细设置------

//设置banner样式
banner.setBannerStyle(BannerConfig.CIRCLE_INDICATOR_TITLE);
//设置图片加载器
banner.setImageLoader(new GlideImageLoader());
//设置图片集合
banner.setImages(images);
//设置banner动画效果
banner.setBannerAnimation(Transformer.DepthPage);
//设置标题集合(当banner样式有显示title时)
banner.setBannerTitles(titles);
//设置自动轮播,默认为true
banner.isAutoPlay(true);
//设置轮播时间
banner.setDelayTime(1500);
//设置指示器位置(当banner模式中有指示器时)
banner.setIndicatorGravity(BannerConfig.CENTER);
//banner设置方法全部调用完毕时最后调用
banner.start();

其他图片资源加载

//资源文件
Integer[] images={R.mipmap.a,R.mipmap.b,R.mipmap.c};
//Uri
Uri uri = resourceIdToUri(context, R.mipmap.ic_launcher);
Uri[] images={uri};
//文件对象
File[] images={"文件对象","文件对象"};
//raw 两种方式
String[] images={"Android.resource://com.frank.glide/raw/raw_1"};
String[] images={"android.resource://com.frank.glide/raw/"+R.raw.raw_1"};
//ContentProvider
String[] images={"content://media/external/images/media/139469"};
//assets
String[] images={"file:///android_asset/f003.gif"};
//sd卡资源
String[] images={"file://"+ Environment.getExternalStorageDirectory().getPath()+"/test.jpg"};

banner.setImages(images);//这里接收集合
常量
方法常量名描述
setBannerStyleBannerConfig.NOT_INDICATOR不显示指示器和标题
setBannerStyleBannerConfig.CIRCLE_INDICATOR显示圆形指示器
setBannerStyleBannerConfig.NUM_INDICATOR显示数字指示器
setBannerStyleBannerConfig.NUM_INDICATOR_TITLE显示数字指示器和标题
setBannerStyleBannerConfig.CIRCLE_INDICATOR_TITLE显示圆形指示器和标题(垂直显示)
setBannerStyleBannerConfig.CIRCLE_INDICATOR_TITLE_INSIDE显示圆形指示器和标题(水平显示)
setIndicatorGravityBannerConfig.LEFT指示器居左
setIndicatorGravityBannerConfig.CENTER指示器居中
setIndicatorGravityBannerConfig.RIGHT指示器居右
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值