通用的广告栏控件,让你轻松实现广告头效果。
支持无限循环,可以设置自动翻页和时间(而且非常智能,手指触碰则暂停翻页,离开自动开始翻页。你也可以设置在界面onPause的时候不进行自动翻页,onResume之后继续自动翻页),
并且提供多种翻页特效(依赖view-pager-transforms)。
对比其他广告栏控件,大多都需要对源码进行改动才能加载网络图片,或者帮你集成不是你所需要的图片缓存库。不需要对库源码进行修改你就可以使用任何你喜欢的网络图片库进行配合。
忘记了,先上轮播图
《轮播图,太大了试了好多次都不行,效果不是多好》
添加依赖
compile 'com.bigkoo:convenientbanner:2.0.5'
布局fragment_shouye.xml
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:orientation="vertical"
tools:context="com.example.administrator.cewidgets.fragments.ShouYeFragment">
<com.bigkoo.convenientbanner.ConvenientBanner
android:id="@+id/shouye_banner"
android:layout_width="match_parent"
app:canLoop="true"
android:layout_height="210dp"/>
</LinearLayout>
ShouYeFragment.java
public class ShouYeFragment extends Fragment {
public ShouYeFragment() {
// Required empty public constructor
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
// Inflate the layout for this fragment
View view=inflater.inflate(R.layout.fragment_shouye, container, false);
initBanner(view);
return view;
}
private void initBanner(View view) {
//初始化需要轮播展示的数据,bannerImgList中存储的是图片int型的id
int[] bannerImag = {R.mipmap.banner_1, R.mipmap.banner_2, R.mipmap.banner_3, R.mipmap.banner_4};
List bannerImgList = new ArrayList();
for (int i = 0; i < bannerImag.length; i++) {
bannerImgList.add(bannerImag[i]);
}
ConvenientBanner banner= (ConvenientBanner) view.findViewById(R.id.shouye_banner);
banner.setPages(new CBViewHolderCreator() {//加载ImageView控件显示图片
public LocalImageHolderView createHolder() {
return new LocalImageHolderView();
}
},bannerImgList)//bannerImgList,必须存储的是int型的图片id,否则出现ClassCastException
//设置两个点图片作为翻页指示器,不设置则没有指示器,可以根据自己需求自行配合自己的指示器,不需要圆点指示器可用不设,第一个是指示器初始化状态,第二个是获得焦点后的
.setPageIndicator(new int[]{R.drawable.ic_brightness_1_white_18dp, R.drawable.ic_brightness_1_green_300_18dp})
.setPageIndicatorAlign(ConvenientBanner.PageIndicatorAlign.CENTER_HORIZONTAL) //设置指示器的方向(左中右)
.setPointViewVisible(true) //设置指示器是否可见
.startTurning(3000); //设置自动切换(同时设置了切换时间间隔)
//.stopTurning(); //关闭自动切换
//设置翻页的效果,不需要翻页效果可用不设
//.setPageTransformer(Transformer.DefaultTransformer); //集成特效之后会有白屏现象,新版已经分离,如果要集成特效的例子可以看Demo的点击响应。
// banner.setManualPageable(false);//设置不能手动影响,即无法手势滑动
}
public class LocalImageHolderView implements Holder<Integer> {
private ImageView imageView;
@Override
public View createView(Context context) {
imageView = new ImageView(context);
imageView.setScaleType(ImageView.ScaleType.FIT_XY);
return imageView;
}
@Override
public void UpdateUI(Context context, final int position, Integer data) {
imageView.setImageResource(data);
}
}
}