Android---Banner轮播图
短信预约 -IT技能 免费直播动态提醒
轮播图是一种很常见的UI。Banner框架能够帮助我们快速开发,完成首页轮播图效果的需求。
导入Banner依赖
implementation 'io.github.youth5201314:banner:2.2.2'
activity_main.xml布局。
banner_loop_time: 设置轮播间隔时间,默认3000;banner_radius: 设置轮播图的圆角
设置Banner适配器。
实现一个简单的轮播图效果,Banner框架已经帮我们做了一个适配器--BannerImageAdapter,可以直接使用。
Banner.setAdapter(new BannerImageAdapter(data))
banner.setAdapter(new BannerImageAdapter(banner_data) { @Override public 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); }
常用属性设置
设置自动循环播放;true == 自动播放
Banner.isAutoLoop(true);
设置指示器
Banner.setIndicator(new CircleIndicator(this))
设置指示器选中时的颜色(即选中时小点的颜色)
Banner.setIndicatorSelectedColor(Color.GREEN)
设置指示器之间的距离
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 banner_data; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); initData(); banner = findViewById(R.id.main_banner); banner.setAdapter(new BannerImageAdapter(banner_data) { @Override public 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); }}
来源地址:https://blog.csdn.net/qq_44950283/article/details/128390186
免责声明:
① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。
② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341