@zhuhf
2017-11-30T18:40:52.000000Z
字数 1739
阅读 1048
一、XML中引入
固定高度:
<com.jcgroup.commonlib.ui.widget.bannerView.JCBanner
android:id="@+id/banner"
android:layout_width="match_parent"
android:layout_height="192dp"/>
指定宽高比:
<com.jcgroup.commonlib.ui.widget.bannerView.JCBanner
android:id="@+id/banner"
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:heightRatio="0.75"/>
以上,表示高度与宽度的比例为:0.75
二、基本使用方式
//...省略...
JCBanner banner = ...;
List<ObjBean> bannerList = ...;
banner.setPages(new BannerItemCreatorImpl<ObjBean>(bannerList) {
/**
* 绑定View
*/
@Override
public View onCreateView(Context context) {
View view = LayoutInflater.from(context).inflate(R.layout.banner, null);
return view;
}
/**
* 绑定数据
*/
@Override
public void getItemView(View view, int position, ObjBean data) {
TextView tv = (TextView) view.findViewById(R.id.tv);
ImageView iv = (ImageView) view.findViewById(R.id.iv);
tv.setText(data.getTitle());
iv.setImageResource(R.drawable.ic_home_default);
}
})
// 指示器
.setPageIndicator(new int[]{R.drawable.indicator_unselected, R.drawable.indicator_selected})
// 点击事件
.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(int position) {
// ...
}
})
.start();
//...省略...
三、更多属性支持
属性 | 描述 |
---|---|
canLoop | 是否开启循环 |
heightRatio | 宽高比 |
2. 代码中设置
属性 | 描述 |
---|---|
setCanLoop(boolean canLoop) | 是否开启循环 |
setHeightRatio(float ratio) | 设置宽高比 |
setPageIndicatorAlign(PageIndicatorAlign align) | 指示器三个方向:居左 (RelativeLayout.ALIGN_PARENT_LEFT),居中 (RelativeLayout.CENTER_HORIZONTAL),居右 (RelativeLayout.ALIGN_PARENT_RIGHT) |
start(long autoTurningTime) | 设置翻页时间,单位:毫秒 |
setCurrentItem(int index) | 设置当前显示的Item |
setOnPageChangeListener(ViewPager.OnPageChangeListener onPageChangeListener) | 页面切换监听器 |
stop() | 停止切换 |
setPageTransformer(PageTransformer transformer) | 自定义页面切换效果 |
setOnItemClickListener(OnItemClickListener onItemClickListener) | Item点击事件 |
setManualPageable(boolean manualPageable) | 是否支持手动切换,默认支持 |
其他 | 阅读源码吧... |