//在build.gradle文件中加入依赖
compile 'com.xhb:xbanner:1.2.2'
compile 'com.nineoldandroids:library:2.4.0'
//要导入一些图片加载框架的依赖,如Glide
compile 'com.github.bumptech.glide:glide:3.7.0'
compile 'jp.wasabeef:glide-transformations:1.0.6'
//网络权限
<uses-permission
android
:name=
"android.permission.INTERNET"
/>
//布局
<LinearLayout
android:layout_width="match_parent"
android:orientation="vertical"
android:layout_height="wrap_content">
<com.stx.xhb.xbanner.XBanner
android:id="@+id/banner"
android:layout_width="match_parent"
android:layout_height="250px"
app:AutoPlayTime="2000"
app:pointNormal="@drawable/dot_no_select"
app:pointSelect="@drawable/dot_select"
app:pointsContainerBackground="#44AAAAAA"
app:pointsPosition="CENTER"
app:tipTextColor="#FFFFFFFF"
app:tipTextSize="26.0sp"></com.stx.xhb.xbanner.XBanner>
//dot_no_select
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="oval">
<size android:width="10dp" android:height="10dp"/>
<solid android:color="#fff"/>
</shape>
//dot_select
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="oval">
<size android:width="10dp" android:height="10dp"/>
<solid android:color="#82B34E"/>
</shape>
代码:
public class MainActivity extends AppCompatActivity {
private XBanner banner;
private List<String> images = new ArrayList<>();
//private List<String> titles;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
banner = (XBanner) findViewById(R.id.banner);
// 初始化XBanner中展示的数据
images.add("https://timgsa.baidu.com/timg?image&quality=80&size=b9999_10000&sec=1490970534523&di=7d5c932f60190913244c3d1032881d13&imgtype=0&src=http%3A%2F%2Fimg2.niutuku.com%2Fdesk%2F130220%2F23%2F23-niutuku.com-246.jpg");
images.add("http://imageprocess.yitos.net/images/public/20160910/99381473502384338.jpg");
images.add("http://imageprocess.yitos.net/images/public/20160910/77991473496077677.jpg");
images.add("http://imageprocess.yitos.net/images/public/20160906/1291473163104906.jpg");
// 为XBanner绑定数据
// banner.setData(images, titles);
banner.setData(images,null);
// 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);
// 设置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();
}
});
}
@Override
protected void onResume() {
super.onResume();
banner.startAutoPlay();
}
@Override
protected void onStop() {
super.onStop();
banner.stopAutoPlay();
}
}
参考博客:http://www.cnblogs.com/itgungnir/p/6210891.html Banner控件的部分属性如下表示:
属性名 | 属性说明 | 属性值 |
---|
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 |