//在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" />//佈局
<com.stx.xhb.xbanner.XBanner
android:id="@+id/banner"
android:layout_width="match_parent"
android:layout_height="200.0dip"
app:AutoPlayTime="3000"
app:pointNormal="@drawable/shape_pointer_normal"
app:pointSelect="@drawable/shape_pointer_selected"
app:pointsContainerBackground="#44AAAAAA"
app:pointsPosition="CENTER"
app:tipTextColor="#FFFFFFFF"
app:tipTextSize="16.0sp" />
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="oval">
<solid android:color="#ff0000"></solid>
<size
android:width="10dp"
android:height="10dp"></size>
代碼:
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 |