基本使用:
1.添加Gradle依赖
dependencies {
compile 'com.xhb:xbanner:1.1.2'
}
2.在清单文件中添加网络权限
<uses-permission android:name="android.permission.INTERNET" />
3.在布局文件中添加XBanner
<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:pointsPosition="CENTER"
app:AutoPlayTime="3000"
app:pointsContainerBackground="#44aaaaaa"
app:pointNormal="@drawable/shape_noraml"
app:pointSelect="@drawable/shape_selected"/>
4.在Activity或者Fragment中配置
初始化:直接传入视图集合进行初始化 这是我写死的图片集合
List<String> 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");
mBannerNet.setData(imgesUrl);
5.加载图片
可根据自己项目需要使用相应的图片加载工具进行加载图片,此处使用Glide,进行加载,可配置占位图等
mBannerNet.setmAdapter(this);
@Override
public void loadBanner(XBanner banner, View view, int position) {
Glide.with(this).load(imgesUrl.get(position)).into((ImageView) view);
}
6.监听图片 item 的单击事件
mBannerNet.setOnItemClickListener(new XBanner.OnItemClickListener() {
@Override
public void onItemClick(XBanner banner, int position) {
Toast.makeText(MainActivity.this, "点击了第"+position+"图片", Toast.LENGTH_SHORT).show();
}
});
自定义属性说明
属性名 属性说明 属性值
isAutoPlay 是否支持自动轮播 boolean类型,默认为true
AutoPlayTime 图片轮播时间间隔 int值,默认为5s
pointNormal 指示器未选中时状态点 drawable,不设置的话为默认状态点
pointSelect 指示器选中时状态点 drawable,不设置的话为默认状态点
pointsVisibility 是否显示指示器 boolean类型,默认为true
pointsPosition 指示点显示位置 LEFT、CENTER、RIGHT类型,默认为CENTER
pointsContainerBackground 指示器背景 可自定义设置指示器背景
pointContainerPosition 指示器显示位置 TOP、BOTTOM类型,默认未BOTTOM
pointContainerLeftRightPadding 指示点容器左右内间距 dimension,默认为10dp
pointTopBottomPadding 指示点上下内间距 dimension,默认为6dp
pointLeftRightPadding 指示点左右内间距 dimension,默认为3dp
整体就是这样
public class MainActivity extends AppCompatActivity implements XBanner.XBannerAdapter {
private List<String> bannerarr;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
XBanner mBannerNet = findViewById(R.id.banner_x);
bannerarr = new ArrayList<>();
bannerarr.add("https://p1.pstatp.com/obj/573b00027992d9665a44");
bannerarr.add("https://p1.pstatp.com/obj/551f00049bcedf3213fa");
bannerarr.add("https://p3.pstatp.com/obj/383e00044b4cc3518d2d");
bannerarr.add("https://p3.pstatp.com/obj/42a30007b8ae7b956804");
mBannerNet.setData(bannerarr,null);
// 设置XBanner的页面切换特效
mBannerNet.setPageTransformer(Transformer.Default);
// 设置XBanner页面切换的时间,即动画时长
mBannerNet.setPageChangeDuration(2000);
mBannerNet.setmAdapter(this);
}
@Override
public void loadBanner(XBanner banner, View view, int position) {
Glide.with(this).load(bannerarr.get(position)).into((ImageView) view);
}