https://github.com/holmofy/androidcarousel
轮播图控件
https://github.com/holmofy/androidcarousel
Last synced: 6 months ago
JSON representation
轮播图控件
- Host: GitHub
- URL: https://github.com/holmofy/androidcarousel
- Owner: holmofy
- Created: 2017-02-26T15:33:28.000Z (over 8 years ago)
- Default Branch: master
- Last Pushed: 2017-07-09T14:22:17.000Z (over 8 years ago)
- Last Synced: 2025-02-07T20:33:33.850Z (8 months ago)
- Language: Java
- Homepage:
- Size: 1.55 MB
- Stars: 1
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Carousel
这是一个安卓客户端实用的轮播图控件,废话不多说,先上Demo效果图
使用时在布局文件中设计好你想要的轮播图效果,如下
```xml
```
其中有Carousel、TitleIndicator、ShapeIndicator、DigitalIndicator四个自定义类
1、Carousel是无限循环播放图片的,它继承自ViewPager,完全可以把它当成ViewPager使用(比如设置PagerAdapter,添加页面滑动监听),它的自定义属性如下:
属性含义类型默认值scroll_delay滑动间隔时间integer3000msscroll_duration滑动时长integer600msscroll_direction滑动方向enum(left|right)leftauto_scroll是否自动滑动booleantrue2、ShapeIndicator是形状指示器,默认指示器形状为圆形(如Demo中的第一个轮播图)
你还可以selected_drawable与unselected_drawable两个属性来自定义它的形状以及颜色(如Demo中的第三个轮播图),它的自定义属性如下表:
属性含义类型默认值item_width每个指示器的宽度dimension0(所以必须设置该属性)item_height每个指示器的高度dimension0(所以必须设置该属性)item_gap指示器之间的间隔
(如果为垂直方向则为垂直间隔)dimension默认与item_width相等item_clickable指示器是否能相应点击事件booleantrue(所以默认点击指示器也能切换页面)selected_drawable指示器被选中时的drawabledrawable默认为圆形浅红色(详见Demo演示图)unselected_drawable指示器未被选中时的drawabledrawable默认为圆形暗灰色3、TitleIndicator是用来显示页面标题的,它通过调用PagerAdapter的**getPageTitle**方法来获取标题内容的,所以如果你想设置表示那你需要重载getPageTitle方法。另外由于TitleIndicator继承自TextView,所以使用方式与TextView完全相同,你可以为它设置背景,颜色等各种样式(它没有自定义属性)。
4、DigitalIndicator是以数字的方式显示当前页面所在的位置的,它也是直接继承自TextView,与ViewPager关联后会自动根据ViewPager所在的位置修改文本内容(Demo中第二个轮播图就是用了该指示器)
**在以上的Indicator指示器中都有一个[void attachViewPager(@Nullable ViewPager viewPager)](https://github.com/holmofy/Carousel/blob/master/carousel/src/main/java/cn/hufeifei/carousel/indicator/Indicator.java#LC14) 方法可以将指示器与ViewPager关联,由于Carousel直接继承自ViewPager,所以你也可以使用该方法关联Carousel,如果传入参数为null,解除该指示器与原来的ViewPager的关联**
具体关联ViewPager的Java代码如下 :
```
carousel.setAdapter(new PagerAdapter());
pagerTitle.attachViewPager(carousel);
shapeIndicator.attachViewPager(carousel);//调用该方法关联ViewPager对象
```## 设置ViewPager切换动画
如果你想设置更炫的动画切换效果你可以参考** [ViewPagerTransforms项目](https://github.com/ToxicBakery/ViewPagerTransforms) **,使用方式非常简单:
```
//先添加该库的Gradle依赖
compile 'com.ToxicBakery.viewpager.transforms:view-pager-transforms:1.2.32@aar'//通过setPageTransformer方法即可设置切换动画
pager = (ViewPager) findViewById(R.id.container);
pager.setAdapter(mAdapter);
pager.setPageTransformer(true, new RotateUpTransformer());
```