您的位置:首页 > 移动开发 > Android开发

【移动开发】Android中三种超实用的滑屏方式汇总(ViewPager、ViewFlipper、ViewFlow)

2014-08-22 17:36 711 查看
现如今主流的Android应用中,都少不了左右滑动滚屏这项功能,(貌似现在好多人使用智能机都习惯性的有事没事的左右滑屏,也不知道在干什么。。。

嘿嘿),由于前段时间项目的需要,所以也对其研究了一下,总的来说滑屏实现有三种方式:(至于其他的实现方式目前后还没碰到。。。)


1.ViewPager 2.ViewFlipper 3.ViewFlow

一.ViewPager

官方文档介绍:http://developer.android.com/reference/android/support/v4/view/ViewPager.html





根据继承关系我们可以看出,ViewPager不在android sdk 自带jar包中,来源google 的补充组件android-support-v4.jar中,所以我们在3.0以前的版本中使用就需要导入该jar包了。

1.1 介绍:[b]该类是一个布局管理器,它允许用户通过滑动左、右页的数据。你必须要一个实现了PagerAdapter接口从而生成的页面视图。[/b]



[b]1.2 使用:[/b]

[b]activity_main.xml[/b]

MainActivity类:


这里还有三个布局文件:layout1.xml (其余两个类似,略)

效果图:









补充说明:

1.这里我们用了Layout作为每个page的填充数据,其实官方文档说ViewPager+Fragment配合使用更好

2.每个页面的响应事件我们可以在OnPageChangeListener监听器类中进行捕获和处理对应事件。

二.ViewFlipper

官方文档:http://developer.android.com/reference/android/widget/ViewFlipper.html





2.1 介绍:ViewFilpper控件是系统自带控件之一,主要用于在同一个屏幕间的切换及设置动画效果、间隔时间,且可以自动播放。

顺便提及一下,View动画关系图:





2.2 使用:

2.2.1 静态加载:


activity_main.xml:

MainActivity类:

动画配置文件(右进右出同理,略):

push_left_in.xml:

push_left_out.xml:

效果:







向左滑屏 向右滑屏

补充:

上述的page只有4个,而真实项目中的page页面个数是不确定的,所以下面这种方式是项目中经常用到的。


2.2.2 动态加载(重要)

参考文章:http://blog.csdn.net/yuzhiboyi/article/details/7702953

activity_main2.xml

flipper_view.xml:

注:这里并不是所有的View都能有onFling回调函数,外部需要加ScrollView !

MyGestureListener类:自定义滑动事件监听器

MyViewFlipper类:自定义View滑动类:监听滑动事件,并做切换视图的处理。

MainActivity2类:

效果图:



--向左滑动(渐变过程不好截图)-->



补充说明:

上述的三个类:

MyGestureListener:继承了SimpleGestureListener手势监听类, 复写了该类onFling()方法,用于监听用户按下滑动事件的处理;还自定义了滑动的回调接口OnFlingListener(包含了两个抽象方法flingToNext(),flingToPrevious)。

MyViewFlipper:是一个自定义ViewFlipper,[b][b]该类首先实现和绑定了[b]上一个类中的[b]滑动的回调接口[b]OnFlingListener,完成了接口中两个重要的方法。同时定义了一个View变化监听回调接口OnViewFlipperListener(包含了两个抽象方法getNextView(),getPreviousView())。[/b][/b][/b][/b][/b]



MainActivity2:加载布局,实现监听,统一处理页面数据View和滑动事件的绑定。

三.ViewFlow类

3.1介绍:

ViewFlow不是google官方的api,它是gethub上的一个开源项目,利用ViewFlow可以产生视图切换的效果。ViewFlow 相当于 Android UI 部件提供水平滚动的 ViewGroup,使用 Adapter 进行条目绑定,例如ViewPager或是ViewFlipper。它提供了三个组件ViewFlow、FlowIndicator和TitleFlowIndicator,一般情况下,当你需要做一个滑动然而不确定view的数目时,可以考虑使用ViewFlow。如果你的view数目确定,使用Fragments 或兼容库里的ViewPager比较好 。

3.2使用:

A.首先下载ViewFlow开源库代码:

[b][b]官方文档:https://github.com/pakerfeldt/android-viewflow[/b][/b]





B.下载之后我们解压打开viewflow文件夹:





C.建项目将这三个类直接复制过来放项目中使用即可。





注:这里可能还需要一个styleable文件,直接将value文件夹下的attrs.xml拷入即可。

activity_main.xml

注:这里需要强调一下,因为使用第三方的库组件,所以要在使用之前引入:

xmlns:app="http://schemas.android.com/apk/res/com.zhf.android_viewflow"

main_item.xml

MainActivity类

这里还有一个图片适配器:ImageAdapter

运行一下吧!效果图:



转屏后



恩,终于写完了! 希望这篇博客能帮助到大家!好累~~



三个例子的源码我已总结好(独立的三个项目,压缩在一个zip里了)

下载地址:http://down.51cto.com/data/976370

本文出自 “狂奔的蜗牛” 博客,请务必保留此出处/article/4262489.html
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐