变量名 | 类型 | 说明 |
---|---|---|
main_title_text_color | color | 主标题文字颜色(默认白色) |
subtitle_title_text_color | color | 副标题(不设置默认为白色) |
divider_width | dimension | 卡片之间的间隔 |
main_title_text_size | dimension | 主标题字体大小 |
subtitle_title_text_size | dimension | 副标题字体大小 |
border_width | dimension | 左右卡片展示的宽度 |
方法名 | 说明 | 版本 |
---|---|---|
setDatas | 使用原生卡片设置数据(必须使用lib中的ImageData新建集合) | V1&V2 |
setDataCount | (使用自定义item)设置数据集合大小(配合setBannerAdapter使用) | V1 (V2 移除) |
setBannerAdapter | (使用自定义item) 设置自定义item的Adapter(配合setDataCount使用) | V1&V2 |
setDelayTime | 设置自动轮播时间间隔(单位毫秒,默认为2000) | V1&V2 |
setPlay | 是否自动轮播 | V1&V2 |
setTransformer | 设置自定义动画样式 | V1&V2 |
startAutoPlay | 开启自动轮播 | V2 |
stopAutoPlay | 关闭自动轮播 | V2 |
ImageData.class 原生item的数据集合实体类
BannerViewHolder.class 自定义item实现ViewHolder的被继承类
CardImageLoader(V2新增接口) 用于图片加载(具体可参照示例)
Gradle
dependencies{
compile 'com.xuezj.cardbanner:cardbanner:2.0.1'
}
布局文件中的使用
<com.xuezj.cardbanner.CardBanner
android:id="@+id/banner"
android:layout_width="match_parent"
android:layout_height="180dp"
app:divider_width="10dp"
app:main_title_text_color="#fff"
app:subtitle_title_text_color="#fff"
app:main_title_text_size="15dp"
app:subtitle_title_text_size="12dp"
app:border_width="30dp"/>
代码中调用
1.原生
List<ImageData> imageData = new ArrayList<>();
ImageData b1 = new ImageData();
b1.setImage("http://ww1.sinaimg.cn/large/610dc034ly1fhyeyv5qwkj20u00u0q56.jpg");
b1.setMainTitle("第一张图片");
imageData.add(b1);
ImageData b2 = new ImageData();
b2.setImage("https://ws1.sinaimg.cn/large/610dc034gy1fhvf13o2eoj20u011hjx6.jpg");
b2.setSubtitleTitle("23-7期");
imageData.add(b2);
ImageData b3 = new ImageData();
b3.setImage("http://ww1.sinaimg.cn/large/610dc034ly1fhxe0hfzr0j20u011in1q.jpg");
imageData.add(b3);
//2.然后调用setDatas方法填充数据,再start()就可以了,
// 是否自动轮播setPlay可以不设置,默认为自动轮播即为ture
cardBanner.setDatas(imageData).setPlay(true).start();
cardBanner.setOnItemClickListener(new CardBanner.OnItemClickListener() {
@Override
public void onItem(int position) {
Toast.makeText(MainActivity.this, "position:" + position, Toast.LENGTH_SHORT).show();
}
});
...
cardBanner.setDatas(imageData).setCardImageLoader(new MyImageLoader()).setPlay(true).start();
...
2.自定义item
final List<String> image=new ArrayList<>();
image.add("http://ww1.sinaimg.cn/large/610dc034ly1fhyeyv5qwkj20u00u0q56.jpg");
image.add("https://ws1.sinaimg.cn/large/610dc034gy1fhvf13o2eoj20u011hjx6.jpg");
image.add("http://ww1.sinaimg.cn/large/610dc034ly1fhxe0hfzr0j20u011in1q.jpg");
cardBanner2.setDataCount(imageData.size()).setBannerAdapter(new BannerAdapter() {
@Override
public BannerViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
ViewHolder h = new ViewHolder(LayoutInflater.from(MainActivity.this)
.inflate(R.layout.banner_item_demo, parent, false));
return h;
}
@Override
public void onBindViewHolder(BannerViewHolder holder, int position) {
ViewHolder VH = (ViewHolder) holder;
Glide.with(MainActivity.this)
.load(image.get(position)).centerCrop()
.diskCacheStrategy(DiskCacheStrategy.ALL)
// .bitmapTransform(new CropCircleTransformation(getContext()))
.into(VH.roundedImageView);
}
});
cardBanner2.start();
cardBanner2.setOnItemClickListener(new CardBanner.OnItemClickListener() {
@Override
public void onItem(int position) {
Toast.makeText(MainActivity.this, "position:" + position, Toast.LENGTH_SHORT).show();
}
});
cardBanner2.setBannerAdapter(new BannerAdapter() {
@Override
public int getCount() {
return image.size();
}
@Override
public BannerViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
ViewHolder h = new ViewHolder(LayoutInflater.from(MainActivity.this)
.inflate(R.layout.banner_item_demo, parent, false));
return h;
}
@Override
public void onBindViewHolder(BannerViewHolder holder, int position) {
ViewHolder VH = (ViewHolder) holder;
Glide.with(MainActivity.this)
.load(image.get(position))
// .bitmapTransform(new CropCircleTransformation(getContext()))
.into(VH.roundedImageView);
}
});