XBanner——支持图片无限轮播控件 类库

1:导依赖

compile 'com.xhb:xbanner:1.2.2'
compile 'com.nineoldandroids:library:2.4.0'
2 :要导入一些图片加载框架的依赖,如Glide

compile 'com.github.bumptech.glide:glide:3.5.2'

3:请求数据要用网络权限

<uses-permission android:name="android.permission.INTERNET">uses-permission>

4:布局

<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/print_no"
    app:pointSelect="@drawable/print_xuan"
    app:pointsContainerBackground="#44AAAAAA"
    app:pointsPosition="CENTER"
    app:tipTextColor="#FFFFFFFF"
    app:tipTextSize="16.0sp">com.stx.xhb.xbanner.XBanner>

5:设置小圆点选中的颜色,以及大小

//选中的状态   <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>
               shape>
//未选中的状态
<shape xmlns:android="http://schemas.android.com/apk/res/android"
    android:shape="oval">
    <solid android:color="#00ff00">solid>
    <size
        android:width="10dp"
        android:height="10dp">size>
shape>
6:接下来就是代码了 我这是在fragment里面写的
public class NewsFragment extends Fragment {
    private ListView lv;
    private XBanner banner;
    private List advs;

    @Nullable
    @Override
    public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
        View view = inflater.inflate(R.layout.news_fragment, null);
        lv= (ListView) view.findViewById(R.id.lv);
        banner= (XBanner) view.findViewById(R.id.banner);
        return view;
    }

    @Override
    public void onActivityCreated(@Nullable Bundle savedInstanceState) {
        super.onActivityCreated(savedInstanceState);
        //获取网络数据
        getServerData();
    }

    private void getServerData() {
        AsyncHttpClient client=new AsyncHttpClient();
        String url="http://www.babybuy100.com/API/getShopOverview.ashx";
        client.get(getActivity(), url, new TextHttpResponseHandler() {
            @Override
            public void onFailure(int statusCode, Header[] headers, String responseString, Throwable throwable) {

            }

            @Override
            public void onSuccess(int statusCode, Header[] headers, String responseString) {
                Gson gson=new Gson();
                User user = gson.fromJson(responseString, User.class);
                advs = user.result.advs;
                //为XBanner绑定数据
                banner.setData(advs,null);
                // XBanner适配数据
                banner.setmAdapter(new XBanner.XBannerAdapter() {
                    @Override
                    public void loadBanner(XBanner banner, View view, int position) {
                        Glide.with(getActivity()).load(advs.get(position).pic).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(getActivity(), "点击了第" + (position + 1) + "张图片", Toast.LENGTH_SHORT).show();
                    }
                });
            }
        });
    }
    @Override
    public void onResume() {
        super.onResume();
        banner.startAutoPlay();
    }

    @Override
    public void onStop() {
        super.onStop();
        banner.stopAutoPlay();
    }
}

参考博客  http://www.cnblogs.com/itgungnir/p/6210891.html

 
  
 
  
属性名 属性说明 属性值
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






你可能感兴趣的:(XBanner——支持图片无限轮播控件 类库)