天天看点

简单实用第三方XBanner

app build中导入两个依赖:

implementation ‘com.xhb:xbanner:1.3.1’

implementation ‘com.github.bumptech.glide:glide:4.9.0’

清单文件加权限:

布局代码

<com.stx.xhb.xbanner.XBanner

xmlns:app=“http://schemas.android.com/apk/res-auto”

android:id="@+id/banner_1"

android:layout_width=“match_parent”

android:layout_height=“180dp”

app:AutoPlayTime=“3000”

app:pointsContainerBackground="#44aaaaaa"

app:pointNormal="@drawable/ic_launcher_background"

app:pointSelect="@drawable/selector_banner_point"

app:pointsPosition=“RIGHT”

app:tipTextSize=“12sp”

app:isShowNumberIndicator=“true”

app:isShowIndicatorOnlyOne=“true”

app:pageChangeDuration=“800”/>

java代码:

public class MainActivity extends AppCompatActivity {

private XBanner banner;
           

// List imgesUrl = new ArrayList<>();

// imgesUrl.add(“http://img3.fengniao.com/forum/attachpics/913/114/36502745.jpg”);

// imgesUrl.add(“http://imageprocess.yitos.net/images/public/20160910/99381473502384338.jpg”);

// imgesUrl.add(“http://imageprocess.yitos.net/images/public/20160910/77991473496077677.jpg”);

// imgesUrl.add(“http://imageprocess.yitos.net/images/public/20160906/1291473163104906.jpg”);

private String[] imgesUrl={“https://goss.veer.com/creative/vcg/veer/612/veer-153374751.jpg”,

“https://goss.veer.com/creative/vcg/veer/612/veer-143818162.jpg”,

“https://goss2.veer.com/creative/vcg/veer/612/veer-147160401.jpg”};

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

banner = (XBanner) findViewById(R.id.banner_1);

// 为XBanner绑定数据
    banner .setData(Arrays.asList(imgesUrl),null);//第二个参数为提示文字资源集合
    // XBanner适配数据
    banner.setmAdapter(new XBanner.XBannerAdapter() {
        @Override
        public void loadBanner(XBanner banner, Object model, View view, int position) {
            Glide.with(MainActivity.this).load(imgesUrl[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(3000);
    
   //点击事件
    banner.setOnItemClickListener(new XBanner.OnItemClickListener() {
        @Override
        public void onItemClick(XBanner banner, int position) {
            Toast.makeText(MainActivity.this, "点击了第"+position+"图片", Toast.LENGTH_SHORT).show();
        }
    });

}
           

}

关于xbanner的一些属性

属性名 属性说明 属性值

isAutoPlay 是否支持自动轮播 boolean类型,默认为true

autoPlayTime 图片轮播事件间隔 int类型,默认5000ms

pointNormal 指示器未选中时的状态 drawable类型,不指定的话使用默认状态点

pointSelect 指示器选中时的状态 drawable类型,不指定的话使用默认状态点

pointsVisible 是否显示指示器 boolean类型,默认为true

pointsPosition 指示点位置 CENTER、LEFT、RIGHT,默认CENTER

pointsContainerBackground 指示器条背景 color类型、drawable类型、mipmap类型等

pointContainerPosition 指示器条位置 TOP、BOTTOM,默认BOTTOM

pointContainerLeftRightPadding 指示点容器左右内间距 dimension类型,默认10.0dip

pointTopBottomPadding 指示点上下内间距 dimension类型,默认6.0dip

pointLeftRightPadding 指示点左右内间距 dimension类型,默认3.0dip

tipTextColor 提示文字的颜色 reference类型

tipTextSize 提示文字的大小 dimension类型,默认10.0dp