Banner轮播
例:
依赖:
dependencies {
// banner轮播依赖
compile 'com.youth.banner:banner:1.4.9'
// glide图片请求依赖
compile 'com.github.bumptech.glide:glide:3.7.0'
}
权限:
<!-- if you want to load images from the internet -->
<uses-permission android:name="android.permission.INTERNET" />
<!-- if you want to load images from a file OR from the internet -->
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
布局:
<com.youth.banner.Banner
xmlns:app="http://schemas.android.com/apk/res-auto"
android:id="@+id/banner"
android:layout_width="match_parent"
android:layout_height="300dp" />
核心代码:
public class MainActivity extends AppCompatActivity {
private List<String> imageArray;//设置图片加载集合
private List<String> imageTitle;//设置图片标题集合
private Banner mBanner;//轮播图片
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
bannerxia();
}
/*************************
* 轮播图
* ***********************
*/
private void bannerxia() {
mBanner = (Banner) findViewById(R.id.banner);
//设置图片加载集合
imageArray=new ArrayList<>();
imageArray.add("http://pic31.photophoto.cn/20140416/0005018332917044_b.jpg");
imageArray.add("http://cdnq.duitang.com/uploads/item/201302/01/20130201192532_Nvu2C.jpeg");
imageArray.add("http://a4.topitme.com/o033/100333352946a98355.jpg");
// imageArray.add(bean.getData().getGoods().getGoods_img());
// imageArray.add(bean.getData().getGoods().getGoods_img());
// imageArray.add(bean.getData().getGoods().getGoods_img());
/*********************
* =====================
* vvvvvvvvvvvvvvvvvvvvv
* 替换、替换、替换、替换
* vvvvvvvvvvvvvvvvvvvvv
* =====================
*/
//设置图片标题集合
imageTitle=new ArrayList<>();
imageTitle.add("aaaaaaaaa");
imageTitle.add("bbbbbbbbb");
imageTitle.add("ccccccccc");
//设置banner样式
mBanner.setBannerStyle(BannerConfig.CIRCLE_INDICATOR_TITLE_INSIDE);
//设置图片加载器
mBanner.setImageLoader(new GlideImageLoader());
//设置图片集合
mBanner.setImages(imageArray);
//设置banner动画效果
mBanner.setBannerAnimation(Transformer.RotateDown);
//设置标题集合(当banner样式有显示title时)
mBanner.setBannerTitles(imageTitle);
//设置轮播时间
mBanner.setDelayTime(1500);
//设置指示器位置(当banner模式中有指示器时)
mBanner.setIndicatorGravity(BannerConfig.CENTER);
//banner设置方法全部调用完毕时最后调用
mBanner.start();
/*********************
* =====================
* ^^^^^^^^^^^^^^^^^^^^^
* 替换、替换、替换、替换
* ^^^^^^^^^^^^^^^^^^^^^
* =====================
*/
/*************************
* 替换上面的代码可去标题
* **********************
*/
// //设置图片加载器
// mBanner.setImageLoader(new GlideImageLoader());
// //设置图片集合
// mBanner.setImages(imageArray);
// //banner设置方法全部调用完毕时最后调用
// mBanner.start();
}
//如果你需要考虑更好的体验,可以这么操作
@Override
protected void onStart() {
super.onStart();
//开始轮播
mBanner.startAutoPlay();
}
@Override
protected void onStop() {
super.onStop();
//结束轮播
mBanner.stopAutoPlay();
}
private class GlideImageLoader extends ImageLoader {
@Override
public void displayImage(Context context, Object path, ImageView imageView) {
//Glide 加载图片简单用法
Glide.with(context).load((String) path).into(imageView);
}
}
}