https://github.com/ccapton/android-bannerview
Android自动轮播的控件BannerView,可加载各种数据源的图片
https://github.com/ccapton/android-bannerview
Last synced: about 1 year ago
JSON representation
Android自动轮播的控件BannerView,可加载各种数据源的图片
- Host: GitHub
- URL: https://github.com/ccapton/android-bannerview
- Owner: Ccapton
- Created: 2017-04-27T06:01:52.000Z (about 9 years ago)
- Default Branch: master
- Last Pushed: 2017-07-02T11:07:50.000Z (almost 9 years ago)
- Last Synced: 2025-02-06T01:41:22.927Z (over 1 year ago)
- Language: Java
- Homepage:
- Size: 3.52 MB
- Stars: 1
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# BannerView
Extends from my another repository"AutoPlayViewpager"
BannerView从我的初始项目AutoPlayViewpager改进而来
> 关于我,欢迎关注
博客:ccapton(http://blog.csdn.net/ccapton) 微信:[Ccapton]()
### 简介:
这是一个自动轮播的控件,能加载网络图片,本地图片,程序资源包图片。
### 示例:

### 特性
加入了可见的圆点指示器,可定制其尺寸(三种),颜色(不限),播放时间间隔,相对位置(左,中,右)。
改进:无限播放与滑动,初始化后加载图片数据即可实现轮播效果,再添加点击事件监听器即可。
### 原理说明
这是一个自定义BannerView继承自RelativeLayout,子View为ViewPage和Indicator(继承自RelativeLayout)。通过自定义View:Indicator,
动态添加其子View:Dot(自定义View,继承自ImageView),作为圆点指示器。通过子View :ViewPager的OnPageChangeListener监听其滑动状态,
进而动态绘制圆点指示器,达到指示效果;通过添加线程,隔一段时间跳转ViewPager到下一页面达到播放效果。
### 如何配置
build.gradle(Project)
``` code
allprojects {
repositories {
...
maven { url 'https://jitpack.io' }
}
}
```
build.gradle(Module:app)
``` code
dependencies {
compile 'com.github.Ccapton:Android-BannerView:1.0.1'
}
```
### 公共方法
``` code
loadUrl(ArrayList urlList)//加载网络图片地址,只需要把地址集合添加进去就行了。
//设置图片点击事件监听器,可以让Activity实现BannerView.OnItemClickListener 接口,然后 bannerView.setOnItemClickListener(this);
setOnItemClickListener(BannerView.OnItemClickListener listener)
setAutoPlay(boolean play)//设置是否自动播放,默认播放
setInterval(int interval)//设置播放间隔(ms),例如3000ms
setDotSize(int dotSize)//设置指示器圆点尺寸(三种):AutoPlayViewpager.DOT_SMALL,AutoPlayViewpager.DOT_NORMAL,AutoPlayViewpager.DOT_LARGE
setDotColor(int color)//设置指示器颜色,任意颜色
setIndicatorLocation(String location)//设置指示器相对于父布局的位置(三个位置)AutoPlayViewpager.INDICATOR_LOCATION_LEFT,AutoPlayViewpager.INDICATOR_LOCATION_CENTER,AutoPlayViewpager.INDICATOR_LOCATION_RIGHT
...其他ViewPager通用方法...
```
### 使用方法
例:在activity_main.xml中,
``` xml
bannerview:dot_size="@dimen/dot_size_small"
bannerview:dot_color="@color/colorPrimary"
android:id="@+id/banner2"
android:layout_width="match_parent"
android:layout_height="150dp">
```
例:在MainActivity中
``` code
public class MainActivity extends AppCompatActivity {
BannerView bannerView;
BannerView bannerView2;
BannerView bannerView3;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
ArrayList stringArrayList=new ArrayList<>();
stringArrayList.add("http://img2.91.com/uploads/allimg/140331/32-1403311A009.jpg");
stringArrayList.add("http://img1.imgtn.bdimg.com/it/u=3055632223,2826867768&fm=214&gp=0.jpg");
stringArrayList.add("http://img.article.pchome.net/00/28/41/62/pic_lib/wm/hlfjkpbz_17.jpg");
bannerView= (BannerView) findViewById(R.id.banner);
bannerView2= (BannerView) findViewById(R.id.banner2);
bannerView3= (BannerView) findViewById(R.id.banner3);
bannerView.loadUrl( stringArrayList); //加载图片地址集合
bannerView.setAutoPlay(true); //是否播放,默认 播放
bannerView.smoothPlay(false); //播放时是否有滑动效果 默认 有
bannerView.setInterval(3000); //播放间隔,默认3000ms
// bannerView.setIndicatorLocation(BannerView.INDICATOR_LOCATION_CENTER); //动态改变指示器位置
// bannerView.setDotSize(BannerView.DOT_NORMAL); //指示器圆点的尺寸 实际尺寸为:6dp,8dp,12dp
// bannerView.setDotColor(Color.GREEN); //指示器圆点的颜色,完全自定义
bannerView2.loadUrl( stringArrayList);
bannerView2.setAutoPlay(false);
bannerView2.setInterval(4000);
bannerView3.loadUrl(stringArrayList);
bannerView3.setAutoPlay(false);
bannerView3.setInterval(5000);
}
}
```
### 作者的话
根据前作AutoPlayViewpager的不足和缺点,把这次的轮播插件做成可无限循环的效果,而且你们只需要把控件初始化后,加载数据源进去就行了。