您的位置:首页 > 其它

BillBoardView自定义控件广告板轮播

2016-03-16 23:55 183 查看

BillBoardView自定义控件广告板轮播



Git地址

compile ‘com.march.billboardview:billboardview:2.0.2’

BillBoardView

自定义轮播板BillBoardView

更新日志

1.0.1 init

1.0.2 部分编译bug

1.0.3 增加长按监听,完善事件判空优化,链式编程简化

2.0.1 开始支持(1)无限轮播,(2)切换size不同的数据源,(3)增加xml属性,增强定制性

2.0.2 增加xml属性资源前缀,防止冲突

API

xml 里面使用

//xml 里面使用
<com.march.billboardview.billboard.BillBoardView
android:id="@+id/billboard"
android:layout_width="match_parent"
android:layout_height="250dp"

//底部栏的颜色(默认Color.GRAY)
bill:bill_botBarBackColor="#5000"
//底部栏的高度(默认40dp)
bill:bill_botBarHeight="50dp"

//是否自动循环播放(默认true)
bill:bill_isAutoRun="true"
//是否循环播放(默认true)
bill:bill_isLoopIt="true"

//是否隐藏底部栏(默认false)
bill:bill_isHideBotBar="false"
//是否隐藏导航小按钮(默认false)
bill:bill_isHideGuideIndex="false"
//是否隐藏文字标题(默认false)
bill:bill_isHideTitle="false"

//选中时小按钮资源(具有默认资源)
bill:bill_srcSelect="@drawable/index_select"
//未选中时小按钮资源(具有默认资源)
bill:bill_srcUnSelect="@drawable/index_normal"

//标题文字颜色(默认Color.WHITE)
bill:bill_textColor="#f00"
//文字大小(默认16sp)
bill:bill_textSize="16sp"
//标题位置(三种选择,默认left)
bill:bill_textPos="right;left;center"
//导航小按钮位置(三种选择,默认right)
bill:bill_guidePos="right;left;center"

//循环播放的事件间隔(默认2500)
bill:bill_playTime="2000"
/>


构建实体

//实体类实现获取url和title的接口
public class Demo implements BillBoardInterface{}


携带范型初始化

BillBoardView<Demo> billBoardView;
billBoardView = (BillBoardView) findViewById(R.id.billboard);


定义加载工具

//初始化图片加载的工具,你可以自定义使用Picasso还是Glide等图片加载库加载
billBoardView.setBillLoadImg(new BillBoardView.BillLoadImg() {
@Override
public void loadImg(Context context, String title, String url, ImageView imageView) {

}
});


链式编程简化

//选择想要使用的方法

billBoardView
//设置导航小点的资源(可以在xml中设置)
.setGuideIndexRes(R.drawable.index_select, R.drawable.index_normal)
//设置动画和插值器,关于插值器见文档最下面
.setAnimation(500, null)
//单击事件监听
.click(new OnBoardClickListener() {
@Override
public void clickBillBoard(int pos, BillBoardInterface b) {

}
})
//长按事件监听
.longClick(new OnBoardLongClickListener() {
@Override
public void longClickBillBoard(int pos, BillBoardInterface b) {

}
})
//设置数据
.setDatas(demos)
//开始展示
.show();


中途可以切换数据

billBoardView.swapDatas(demos);


停止轮播,自动播放将会停止

public void stopPlay()


开始轮播

public void startPlay()


设置轮播动画和时间,下面是可选的插值器,如果效果不足以满足要求,关于插值器的使用请自行百度

new AccelerateInterpolator()  开始慢后面加速,由于距离较近效果不明显,有点像是匀速
new AccelerateDecelerateInterpolator()  两头速度慢,中间加速,由于距离较近效果不明显,有点像是匀速
new DecelerateInterpolator() 开始快后面慢,由于距离较近效果不明显,有点像是匀速
new BounceInterpolator() 到达末尾跳跃弹起
new AnticipateInterpolator()先甩一下在移动
new AnticipateOvershootInterpolator() 先甩一下到达终点后过界在后退
new OvershootInterpolator() 过界后返回
new LinearInterpolator() 常量变速
new LinearOutSlowInInterpolator() 开始快后面慢
public void setAnimation(int duration, Interpolator interpolator)


当你的页面退出时,暂定轮播线程将是优化的一个很好选择,

@Override
protected void onResume() {
super.onResume();
if(billBoardView!=null)
billBoardView.startPlay();
}

@Override
protected void onDestroy() {
super.onDestroy();
billBoardView.stopPlay();
}

@Override
protected void onPause() {
super.onPause();
billBoardView.stopPlay();
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: