Android---Banner轮播图

news/2024/10/25 3:23:48/

轮播图是一种很常见的UI。Banner框架能够帮助我们快速开发,完成首页轮播图效果的需求。

1、导入Banner依赖

implementation 'io.github.youth5201314:banner:2.2.2'

2、activity_main.xml布局。

banner_loop_time: 设置轮播间隔时间,默认3000;banner_radius: 设置轮播图的圆角

<com.youth.banner.Bannerandroid:id="@+id/main_banner"android:layout_width="match_parent"android:layout_height="210dp"app:banner_radius="15dp"android:layout_marginTop="15dp"android:layout_marginStart="10dp"android:layout_marginEnd="10dp"app:banner_loop_time="2000"/>

 

3、设置Banner适配器

实现一个简单的轮播图效果,Banner框架已经帮我们做了一个适配器--BannerImageAdapter,可以直接使用。

Banner.setAdapter(new BannerImageAdapter(data))
banner.setAdapter(new BannerImageAdapter<Integer>(banner_data) {@Overridepublic void onBindView(BannerImageHolder holder, Integer data, int position, int size) {holder.imageView.setImageResource(data);}});

 

data 是要轮播的数据(图片),放在drawable文件夹下。初始数据的代码

private void initData(){banner_data = new ArrayList<>();banner_data.add(R.drawable.banner001);banner_data.add(R.drawable.banner002);banner_data.add(R.drawable.banner003);banner_data.add(R.drawable.banner004);banner_data.add(R.drawable.banner005);banner_data.add(R.drawable.test006);}

4、常用属性设置

\bullet 设置自动循环播放;true == 自动播放

Banner.isAutoLoop(true);

\bullet 设置指示器

Banner.setIndicator(new CircleIndicator(this))

  \bullet 设置指示器选中时的颜色(即选中时小点的颜色)

Banner.setIndicatorSelectedColor(Color.GREEN)

  \bullet 设置指示器之间的距离

Banner.setIndicatorSpace(int)

 

完整代码

package com.example.bannertest;import androidx.appcompat.app.AppCompatActivity;import android.graphics.Color;
import android.os.Bundle;import com.youth.banner.Banner;
import com.youth.banner.adapter.BannerImageAdapter;
import com.youth.banner.holder.BannerImageHolder;
import com.youth.banner.indicator.CircleIndicator;import java.util.ArrayList;
import java.util.List;public class MainActivity extends AppCompatActivity {private Banner banner;private List<Integer> banner_data;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);initData();banner = findViewById(R.id.main_banner);banner.setAdapter(new BannerImageAdapter<Integer>(banner_data) {@Overridepublic void onBindView(BannerImageHolder holder, Integer data, int position, int size) {holder.imageView.setImageResource(data);}});// 开启循环轮播banner.isAutoLoop(true);banner.setIndicator(new CircleIndicator(this));banner.setScrollBarFadeDuration(1000);// 设置指示器颜色(TODO 即选中时那个小点的颜色)banner.setIndicatorSelectedColor(Color.GREEN);// 开始轮播banner.start();}private void initData(){banner_data = new ArrayList<>();banner_data.add(R.drawable.banner001);banner_data.add(R.drawable.banner002);banner_data.add(R.drawable.banner003);banner_data.add(R.drawable.banner004);banner_data.add(R.drawable.banner005);banner_data.add(R.drawable.test006);}
}


http://www.ppmy.cn/news/5810.html

相关文章

基于注解方式Spring Security忽略拦截

文章目录1.Spring Security忽略拦截配置2.基于配置文件注入2.1.添加配置2.2.修改Spring Security配置类2.3. 测试3.基于注解的方式过滤接口3.1.添加注解3.2.获取所有使用了IgnoreWebSecurity注解的接口访问路径3.3.测试1.Spring Security忽略拦截配置 关于Spring Securite的使…

Flarum部署:从源码到docker到放弃

警告&#xff1a; 此篇文章前半段记录了我用代码部署flarum遇到的一些问题和解决办法&#xff0c;但是可能是由于我是在不熟悉php的框架结构&#xff0c;最终我还是选择了使用docker进行部署&#xff0c;请斟酌是否继续阅读本文。 Hello&#xff0c;大家好&#xff0c;我是内网…

IU酒店释放轻中端投资活力,开启曲靖酒店新篇章

曲靖位于云南省东北部&#xff0c;是云南连接内地的重要陆路通道&#xff0c;素有“滇黔锁钥”、“入滇门户”、“云南咽喉”之称&#xff0c;是仅次于昆明的云南第二大城市。曾入选“中国十佳宜居城市”榜单10次的城市&#xff0c;拥有3000多年的文明史&#xff0c;早在三国魏…

通过脚手架vue-cli创建一个vue项目

我需要在vue-demo文件下新建vue项目 步骤一 ①在该文件夹下打开集成终端 输入创建命令 命令 vue create 项目名称 &#xff0c;注意不要使用驼峰命名法 如果是第一次配置&#xff0c;有面的提示&#xff0c;这里说你这样速度会很慢的&#xff0c;用不用镜像啊&#xff0c;这…

基于HOG、LBP完成特征工程,基于SVM/RF/XGBOOST/GBDT/CNN/DNN完成人脸识别+表情识别

在我之前的文章中写过很多关于人脸识别和表情识别的文章&#xff0c;今天有一个项目的需求就是需要做两种或者是多种任务&#xff0c;我在开发完对应的模型之后就突然想到了之前做过的人脸识别和表情识别的项目&#xff0c;就想着是否可以基于机器学习/深度学习等方式来同时实现…

打造飞一样的前端:vue3应用打包优化

目录前言优化vue3构建的几点措施采用CDN压缩JS按需加载按需加载vxe-table按需加载element-plus总结前言 vue3应用上线后&#xff0c;一直受困于加载过慢&#xff0c;昨天终于坐下来做些优化。本想切换到webpack打包&#xff0c;但还是坚持了vite。 优化vue3构建的几点措施 采…

Hook原理

对于会Hook的人来说,Hook其实也就那么回事.对于没有Hook过的人来说,会感觉Hook很高大上(其实也没毛病). 那么今天我们就来探讨一些Hook的原理是什么. 我认为任何Hook都可以分为以下三步(简称WFH): 需要Hook的是什么,在哪里(后面简称Where). 寻找到Hook的地方.(后面简称Find)…

【用户交互】

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言一、用户交互3.1 函数返回码3.2 常用3.3 acedGetXXX函数3.3.1 常规3.3.2 acedInitGet3.3.3 选择实体3.4 选择集3.4.1 常用函数3.4.2 acedSSGet函数详解总结前言 本文就介绍了用户交互内容。 提…