Android开发---简易好用的轮播器

注意:请从Git上下载flybanner,并放入某个package中!

步骤:

1.     Drawable
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:state_enabled="true">
        <shape android:shape="oval">
            <size android:width="6dp" android:height="6dp" />
            <solid android:color="@android:color/white" />
        </shape>
    </item>
    <item>
        <shape android:shape="oval">
            <size android:width="6dp" android:height="6dp" />
            <solid android:color="#ddd" />
        </shape>
    </item>
</selector>
2.     Values

<!--轮播-->
<declare-styleable name="FlyBanner">
    <attr name="points_visibility" format="boolean"/>
    <attr name="points_position" format="enum">
        <enum name="CENTER" value="0"/>
        <enum name="LEFT" value="1"/>
        <enum name="RIGHT" value="2"/>
    </attr>
    <attr name="points_container_background" format="reference|color"/>
</declare-styleable>
3.导入picasso包
4.XML
<flybanner.FlyBanner
    android:id="@id/fl_banner"
    android:layout_width="match_parent"
    android:layout_height="150dp"
    android:layout_alignParentLeft="true"
    android:layout_alignParentStart="true"
    android:layout_alignParentTop="true"
    />

 

*****设置背景:

<FrameLayout
    android:id="@+id/fl_banner"
    android:layout_width="match_parent"
    android:layout_height="150dp"
    android:background="@mipmap/banner_bg"
    android:layout_alignParentLeft="true"
    android:layout_alignParentStart="true"
    android:layout_alignParentTop="true">

    <flybanner.FlyBanner
        android:id="@+id/fly_banner"
        android:layout_width="match_parent"
        android:layout_height="150dp"
        android:layout_alignParentLeft="true"
        android:layout_alignParentStart="true"
        android:layout_alignParentTop="true" />

</FrameLayout>
5.java

示例:

(1)加载本地图片

FlyBanner mBannerLocal;
/** /* * 加载本地图片 */private void initLocalBanner() {    mBannerLocal = (FlyBanner)mView.findViewById(R.id.fl_banner);    List<Integer> images = new ArrayList<>();    images.add(R.mipmap.banner1);    images.add(R.mipmap.banner2);    mBannerLocal.setImages(images);    mBannerLocal.setOnItemClickListener(new FlyBanner.OnItemClickListener() {        @Override        public void onItemClick(int position) {            Utils.showToast("点击了第"+position+"张图片");        }    });}

 

(2)加载网络图片

/**
 * 加载网页图片
 */
private void initNetBanner() {
    mBannerLocal = (FlyBanner) mView.findViewById(R.id.fl_banner);

    List<String> imgesUrl = new ArrayList<>();
    //for (int i = 0; i < mImagesUrl.length; i++) {
    //    imgesUrl.add(mImagesUrl[i]);
    //}

    String url1 = "http://img2.imgtn.bdimg.com/it/u=3176420603,2152246847&fm=214&gp=0.jpg";
    String url2 = "http://img5.imgtn.bdimg.com/it/u=3549708773,313146732&fm=23&gp=0.jpg";
    imgesUrl.add(url1);
    imgesUrl.add(url2);

    mBannerLocal.setImagesUrl(imgesUrl);

    mBannerLocal.setOnItemClickListener(new FlyBanner.OnItemClickListener() {
        @Override
        public void onItemClick(int position) {
            Utils.showToast("点击了第" + position + "张图片");
        }
    });
}

 

6.github说明

Config in java

/**
* 加载本地图片
*/
private void initLocalBanner() {
    mBannerLocal = (FlyBanner) findViewById(R.id.banner_1);
 
    List<Integer> images = new ArrayList<>();
    images.add(R.drawable.img_1);
    images.add(R.drawable.img_2);
    images.add(R.drawable.img_3);
    images.add(R.drawable.img_4);
    mBannerLocal.setImages(images);
 
    mBannerLocal.setOnItemClickListener(new FlyBanner.OnItemClickListener() {
        @Override
        public void onItemClick(int position) {
            toast("点击了第"+position+"张图片");
        }
    });
}
 
/**
* 加载网页图片
*/
private void initNetBanner() {
    mBannerNet = (FlyBanner) findViewById(R.id.banner_2);
 
    List<String> imgesUrl = new ArrayList<>();
    for (int i = 0; i < mImagesUrl.length; i++) {
        imgesUrl.add(mImagesUrl[i]);
    }
    mBannerNet.setImagesUrl(imgesUrl);
 
    mBannerNet.setOnItemClickListener(new FlyBanner.OnItemClickListener() {
        @Override
        public void onItemClick(int position) {
            toast("点击了第" + position + "张图片");
        }
    });
}

 

xml参数说明:

参数

说明

类型

points_visibility

指示器是否可见

boolean

points_position

指示器位置(左,中,右)

int

points_container_background

指示器容器背景

Drawable

 方法说明:

方法

参数

说明

setPointsIsVisible

isVisible

指示器是否可见

setPoinstPosition

position

指示器位置(左,中,右)


注意:setImageUrl    设置轮播图片的地址


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值