依赖:
implementation 'com.xhb:xbanner:1.2.2'
implementation 'com.nineoldandroids:library:2.4.0'
implementation 'com.github.bumptech.glide:glide:3.7.0'
implementation 'jp.wasabeef:glide-transformations:1.0.6'
权限:
<uses-permission android:name="android.permission.INTERNET" />
控件:
<com.stx.xhb.xbanner.XBanner
android:id="@+id/banner"
android:layout_width="match_parent"
android:layout_height="200.0dip"
app:AutoPlayTime="3000"
app:pointsContainerBackground="#44AAAAAA"
app:pointsPosition="RIGHT"
app:tipTextColor="#FFFFFFFF"
app:tipTextSize="16.0sp" />
java:
XBanner banner;
ArrayList<String> images;
ArrayList<String> titles;
banner = (XBanner) findViewById(R.id.banner);
// 初始化XBanner中展示的数据
images = new ArrayList<>();
titles = new ArrayList<>();
images.add("https://gss1.bdstatic.com/9vo3dSag_xI4khGkpoWK1HF6hhy/baike/w%3D268%3Bg%3D0/sign=e9449e382d9759ee4a5067cd8ac0242b/94cad1c8a786c9179e80a80cc23d70cf3bc75700.jpg");
titles.add("这是第1张图片");
images.add("http://img.ivsky.com/img/bizhi/co/201711/27/nissan_vmotion2_0-001.jpg");
titles.add("这是第2张图片");
images.add("http://img.ivsky.com/img/tupian/co/201709/18/zise_huaduo.jpg");
titles.add("这是第3张图片");
images.add("http://img.ivsky.com/img/tupian/co/201709/16/dahailidehaiguitupian.jpg");
titles.add("这是第4张图片");
// 为XBanner绑定数据
banner.setData(images, titles);
// XBanner适配数据
banner.setmAdapter(new XBanner.XBannerAdapter() {
@Override
public void loadBanner(XBanner banner, View view, int position) {
Glide.with(MainActivity.this).load(images.get(position)).into((ImageView) view);
}
});
XBanner的页面切换特效:
banner.setPageTransformer(Transformer.Default);//横向移动
banner.setPageTransformer(Transformer.Alpha); //渐变,效果不明显
banner.setPageTransformer(Transformer.Rotate); //单页旋转
banner.setPageTransformer(Transformer.Cube); //立体旋转
banner.setPageTransformer(Transformer.Flip); // 反转效果
banner.setPageTransformer(Transformer.Accordion); //三角换页
banner.setPageTransformer(Transformer.ZoomFade); // 缩小本页,同时放大另一页
banner.setPageTransformer(Transformer.ZoomCenter); //本页缩小一点,另一页就放大
banner.setPageTransformer(Transformer.ZoomStack); // 本页和下页同事缩小和放大
banner.setPageTransformer(Transformer.Stack); //本页和下页同时左移
banner.setPageTransformer(Transformer.Depth); //本页左移,下页从后面出来
banner.setPageTransformer(Transformer.Zoom); //本页刚左移,下页就在后面
// 设置XBanner页面切换的时间,即动画时长
banner.setPageChangeDuration(1000);
//xbanner的点击事件
banner.setOnItemClickListener(new XBanner.OnItemClickListener() {
@Override
public void onItemClick(XBanner banner, int position) {
Toast.makeText(MainActivity.this, "点击了第" + (position + 1) + "张图片", Toast.LENGTH_SHORT).show();
}
});
//把xbanner放在生命周期中,随便放
@Override
protected void onResume() {
super.onResume();
banner.startAutoPlay();
}
@Override
protected void onStop() {
super.onStop();
banner.stopAutoPlay();
}