自动轮播的Viewpager
来源:互联网 发布:web软件开发方式 编辑:程序博客网 时间:2024/05/16 15:36
自动轮播的Viewpager
来自:MrlLee分类:Android精品源码上传时间:2016-5-31 12:14:00
项目介绍:
gradle/wrapper增加播放控制Apr 21, 2016 rollviewpager修复LooperPagerAdapter的notifyDataSetChange时的BUG。以及页数为1时的BUG。May 24, 2016 rollviewpagerdome修复LooperPagerAdapter的notifyDataSetChange时的BUG。以及页数为1时的BUG。May 24, 2016 .gitignorefirst createJul 13, 2015 README.md修复LooperPagerAdapter的notifyDataSetChange时的BUG。以及页数为1时的BUG。May 24, 2016 README_en.md修复LooperPagerAdapter的notifyDataSetChange时的BUG。以及页数为1时的BUG。May 24, 2016 build.gradle降低SDk版本要求May 13, 2016 example.jpg修改图片大小Jul 17, 2015 gradle.propertiesfirst createJul 13, 2015 gradlewfirst createJul 13, 2015 gradlew.batfirst createJul 13, 2015 settings.gradle修改部分不和谐代码Jul 15, 2015
RollViewPager
自动轮播的Viewpager
支持无限循环。
触摸时会暂停播放,直到结束触摸一个延迟周期以后继续播放。
看起来就像这样。指示器可以为点可以为数字还可以自定义,位置也可以变。
依赖
[Java] 查看源文件 复制代码
1
compile
'com.jude:rollviewpager:1.3.1'
使用
[Java] 查看源文件 复制代码12<com.jude.rollviewpager.rollpagerview android:layout_width=
"\"match_parent\""
android:layout_height=
"\"180dp\""
app:rollviewpager_play_delay=
"\"3000\"/"
>
</com.jude.rollviewpager.rollpagerview>
[Java] 查看源文件 复制代码
1
app:rollviewpager_play_delay=\"
3000
\"
[Java] 查看源文件 复制代码
1
app:rollviewpager_hint_gravity=\"center\"
[Java] 查看源文件 复制代码
1
left
[Java] 查看源文件 复制代码
1
center
[Java] 查看源文件 复制代码
1
right
[Java] 查看源文件 复制代码
1
center
[Java] 查看源文件 复制代码
1
app:rollviewpager_hint_color=\"#7c7c7c\"
[Java] 查看源文件 复制代码
1
app:rollviewpager_hint_alpha
[Java] 查看源文件 复制代码
1
app:rollviewpager_hint_paddingLeft
[Java] 查看源文件 复制代码
1
app:rollviewpager_hint_paddingRight
[Java] 查看源文件 复制代码
1
app:rollviewpager_hint_paddingTop
[Java] 查看源文件 复制代码
1
app:rollviewpager_hint_paddingBottom
一般指定一下间隔时间就好了。
HintView
提供了HintView是对指示器进行自定义。
[Java] 查看源文件 复制代码
1
setHintView(HintView hintview)
- HintView
- ShapeHintView
- IconHintView
- ColorPointHintView
- IconHintView
- TextHintView
- ShapeHintView
用法:
[Java] 查看源文件 复制代码1234mRollViewPager.setHintView(
new
IconHintView(
this
,R.drawable.point_focus,R.drawable.point_normal));
mRollViewPager.setHintView(
new
ColorPointHintView(
this
, Color.YELLOW,Color.WHITE));
mRollViewPager.setHintView(
new
TextHintView(
this
));
mRollViewPager.setHintView(
null
);
//隐藏指示器
Adapter
提供以下三种种方便的PagerAdapter供使用。
本ViewPager也可以使用其他任意PagerAdapter。
StaticPagerAdapter
存储页面的Adapter。view添加进去就存储不会再次
[Java] 查看源文件 复制代码
1
getView
概念参照FragmentPagerAdapter。可以用于其他ViewPager。
DynamicPagerAdapter
动态的Adapter。当创建3号view时会销毁1号view(递推),会时常调用
[Java] 查看源文件 复制代码
1
getView
概念参照FragmentStatePagerAdapter。可以用于其他ViewPager。
[Java] 查看源文件 复制代码0102030405060708091011121314151617181920212223242526//2种Adapter用法一样。
mRollViewPager.setAdapter(
new
TestNomalAdapter());
private
class
TestNomalAdapter
extends
StaticPagerAdapter{
private
int
[] imgs = {
R.drawable.img1,
R.drawable.img2,
R.drawable.img3,
R.drawable.img4,
};
@Override
public
View getView(ViewGroup container,
int
position) {
ImageView view =
new
ImageView(container.getContext());
view.setImageResource(imgs[position]);
view.setScaleType(ImageView.ScaleType.CENTER_CROP);
view.setLayoutParams(
new
ViewGroup.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT));
return
view;
}
@Override
public
int
getCount() {
return
imgs.length;
}
}
LoopPagerAdapter
无限循环的Adapter。无限循环上采用的是getCount返回int大数的方法(并没有什么缺点,另外估计1s的间隔时间你在有生之年看不到他播放到底)。实测比N<->1的效果好。
数据采用StaticPagerAdapter的方案。节省创建View开销。
本Adapter只能用于本RollViewPager;
无需其他设置,很简单。
[Java] 查看源文件 复制代码010203040506070809101112131415161718192021222324mRollViewPager.setAdapter(
new
TestLoopAdapter(mRollViewPager));
private
class
TestLoopAdapter
extends
LoopPagerAdapter{
private
int
[] imgs = {
R.drawable.img1,
R.drawable.img2,
R.drawable.img3,
R.drawable.img4,
};
public
TestLoopAdapter(RollPagerView viewPager) {
super
(viewPager);
}
@Override
public
View getView(ViewGroup container,
int
position) {
ImageView view =
new
ImageView(container.getContext());
view.setImageResource(imgs[position]);
view.setScaleType(ImageView.ScaleType.CENTER_CROP);
view.setLayoutParams(
new
ViewGroup.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT));
return
view;
}
@Override
public
int
getRealCount() {
return
imgs.length;
}
}
播放控制
[Java] 查看源文件 复制代码123rollViewPager.pause()
//暂停
rollViewPager.resume()
//恢复
rollViewPager.isPlaying()
//是否正在播放
Demo下载地址:http://download.csdn.net/detail/sinat_28238111/9876360
阅读全文
0 0
- 自动轮播的viewpager
- ViewPager的自动轮播
- 自动轮播的Viewpager
- ViewPager自动轮播
- ViewPager自动轮播
- viewpager自动轮播
- viewpager自动轮播
- 炒鸡好用的自动轮播的ViewPager
- Android 自动轮播的Viewpager
- android之自动轮播的ViewPager
- 自动轮播的viewPager实现
- 内部优化的 自动轮播 Viewpager
- ViewPager无限自动轮播
- HttpClient+ViewPager自动轮播
- VIewPager实现自动轮播
- ViewPager无限自动轮播
- Viewpager图片自动轮播
- ViewPager图片自动轮播
- Leetcode 378 Kth Smallest Element in a Sorted Matrix
- CAP原则(CAP定理)、BASE理论
- [bigdata-103] spring-cloud-01 服务注册 eureka server 单机版
- File获取功能
- OpenJudge 2989 糖果
- 自动轮播的Viewpager
- js创建对象的七种方式
- VirtualBox虚拟机与主机共享文件
- 数学问题——求回文平方数
- python典型应用场景、domo及模板之一-----------配置&日志
- numpy.mean和numpy.random.multivariate_normal(依据均值和协方差生成数据,提醒:计算协方差别忘了转置)
- linux下svn的使用
- 《Bootstrap+JSP开发案例》学习
- 开源项目解析之--Okio