扫二维码与项目经理沟通
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流
轮播图是一种很常见的UI。Banner框架能够帮助我们快速开发,完成首页轮播图效果的需求。
1、导入Banner依赖
implementation 'io.github.youth5201314:banner:2.2.2'
2、activity_main.xml布局。
banner_loop_time: 设置轮播间隔时间,默认3000;banner_radius: 设置轮播图的圆角
3、设置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);
}
4、常用属性设置
设置自动循环播放;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 Listbanner_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);
}
}
你是否还在寻找稳定的海外服务器提供商?创新互联www.cdcxhl.cn海外机房具备T级流量清洗系统配攻击溯源,准确流量调度确保服务器高可用性,企业级服务器适合批量采购,新人活动首月15元起,快前往官网查看详情吧
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流