- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
Android系统中使用ViewPager实现画廊效果的应用
Android系统中使用ViewPager实现画廊效果的应用
摘要:在Android应用中用户少不了要使用照片浏览应用软件,但在该类应用的开发中不少开发者还在使用Gallery画廊组件实现。这样既容易造成无法控制每次滑动只滑动一页,也容易导致无法修改第一项与Gallery的左边距,影响用户交互的体验。该文将介绍如何使用ViewPager组件解决上面的问题。
中国论文网 /8/view-7163701.htm
关键词:ViewPager组件;页面布局;画廊
中图分类号:TP37 文献标识码:A 文章编号:1009-3044(2015)06-0207-01
1 概述
在早期Android应用开发中,不少相册浏览应用都使用Gallery画廊组件实现。但是,在使用Gallery的时候大家会发现有几个问题:一是无法控制每次滑动只滑动一页,二是Gallery默认第一个item居中,无法修改它与Gallery的左间距。在最新的Android API中,开发者可以使用ViewPager组件及android:clipChildren属性解决这个问题,在屏幕上显示多个Fragment。
2 ViewPager组件简介
ViewPager组件用于实现多页面的切换效果。ViewPager是android扩展包v4包中的类,这个类可以让用户左右切换当前的view。在使用ViewPager时需要注意几点::
1)ViewPager类直接继承了ViewGroup类,所有它是一个容器类,可以在其中添加其他的view类。
2)ViewPager类需要一个PagerAdapter适配器类给它提供数据。
3)ViewPager经常和Fragment一起使用,并且提供了专门的FragmentPagerAdapter和FragmentStatePagerAdapter类供Fragment中的ViewPager使用。
在编写ViewPager的应用时,还需要使用两个组件类分别是PagerTitleStrip类和PagerTabStrip类,PagerTitleStrip类直接继承自ViewGroup类,而PagerTabStrip类继承PagerTitleStrip类,所以这两个类也是容器类。但是有一点需要注意,在定义XML的layout的时候,这两个类必须是ViewPager标签的子标签。
3 使用ViewPager实现画廊效果
要实现相册软件中的画廊效果,开发应用时应包括两个步骤,一是设计UI界面,二是编写实现功能的Java类。
3.1 定义xml布局页面
在Android项目中,在相关布局页面中需要导入Android扩展包,并添加ViewPager组件,设置其宽、高、id、layout_gravity和clipChildren属性。参考设计代码如图1。
发现上面的RelativeLayout(可以用其他layout替换)和ViewPager的android:clipChildren都设置为了false。android:clipChildren表示是否限制子View在其范围内,在animations动画以及本文的情况下可以发挥很大的作用。默认为true。
3.2 实现Java类
在编写实现画廊效果的Java类时,主要使用了ViewPager类对象及其相关方法,并配合数据适配器PagerAdapter类,通过重写该类的若干方法来实现数据的填充,实现照片的显示。
a.ViewPager设置
需要setOnPageChangeListener,在onPageScrolled(int position, float positionOffset, int positionOffsetPixels)函数中不断刷新layout。部分关键代码如图2。
setOffscreenPageLimit表示设置缓存,这样左右拖动即可看见后面的Fragment。setPageMargin表示设置Fragment之间的间距。
b. FrameLayout设置
需要在setOnTouchListener函数中将滑动事件传递给viewPager,否则只有viewPager中间的view可以滑动,设置后整个viewPager都可以滑动。部分关键代码如图3。
可能运行后出现viewpager的部分Fragment无法看见或是突然消失的问题,请确保RelativeLayout和ViewPager的android:clipChildren都设置为了false并且viewPager.setOffscreenPageLimit(TOTAL_COUNT);其中TO
原创力文档


文档评论(0)