Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

sanjinmr/Banner

Repository files navigation

###如何使用

首先在gradle文件中添加

 compile 'com.xiwenhec:banner:1.0.2'

在此我模仿listView的实现习惯,增加了一个适配器,调用者只需要这样一下几步就可以完成: 第一步:在xml代码写入控件

<com.sivin.Banner 
 android:id="@+id/id_banner"
 android:layout_width="match_parent"
 android:layout_height="180dp"
 app:banner_pointGravity="right"
 />

第二步:java代码中绑定控件

 mBanner = (Banner) findViewById(R.id.id_banner);

第三步:实例化适配器,并设置适配器,建议您在new BannerAdapter<BannerModel>的时候将后面的<>中的泛型加上,然后在根据工具提示实现未完成的方法。这里你需要重写bindTips(TextView tv, BannerModel bannerModel)bindImage(ImageView imageView, BannerModel bannerModel)方法,方法的第二个参数就是你加入的泛型类型。其中mDatas你的banner的数据集合,具体过程使用就会有所体会。 注意:不要忘了mDatas的初始化,合理的做法应该这样的 private List<BannerModel> mDatas = new ArrayList<>();

 BannerAdapter adapter = new BannerAdapter<BannerModel>(mDatas) {
 @Override
 protected void bindTips(TextView tv, BannerModel bannerModel) {
 tv.setText(bannerModel.getTips());
 }
 @Override
 public void bindImage(ImageView imageView, BannerModel bannerModel) {
 Glide.with(mContext)
 .load(bannerModel.getImageUrl())
 .placeholder(R.mipmap.empty)
 .error(R.mipmap.error)
 .into(imageView);
 }
 };
 mBanner.setBannerAdapter(adapter);

最后一步:告诉banner数据不部署完成,为什么这样做呢,正常情况下,我们的数据都是从网络上异步加载的,一般的情况下会以集合的形式传递过来,当我们在完成网络加载的时候,改变了mDatas数据,然后调用mBanner.notifiDataHasChanged();通知banner就行了,使用起来和listview的习惯是不是很相似呢,对就是这样

 mBanner.notifiDataHasChanged();

为了更加优美的控制banner控件,这里提供了很多可控制的属性,我们可以这样做:

<com.sivin.Banner
 android:id="@+id/id_banner"
 android:layout_width="match_parent"
 android:layout_height="180dp"
 app:banner_pointContainerLeftRightPadding="10dp"
 app:banner_pointTopBottomMargin="6dp"
 app:banner_pointLeftRightMargin="3dp"
 app:banner_pointGravity="right"
 app:banner_pointContainerBackground="#33000000"
 app:banner_pointDrawable="@drawable/selector_banner_point"
 app:banner_pointAutoPlayInterval="3"
 app:banner_pageChangeDuration="800"
 app:banner_tipTextColor="#FFFFFF"
 app:banner_tipTextSize="12sp"/>

About

android广告轮播控件

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Java 100.0%

AltStyle によって変換されたページ (->オリジナル) /