亦余心之所善兮,虽九死其犹未悔。这篇文章主要讲述Android基础控件——ViewPager实现带有动画的引导页相关的知识,希望能为你提供帮助。
好了,又到我们学习基础控件的时候了,其实引导页很简单,就是五张图片而已传统的ViewPager实现引导页和ListView是一样道理的,只是把ListView的Item换成图片,把BaseAdapter换成PagerAdapter,我们先来看下传统引导页的效果图
文章图片
既然用到的是ViewPager,那么xml文件就必须要有ViewPager,细心的你,可能会发现最后一页还有个按钮的出现,没错,xml文件中也要有个按钮
开头也说了,Viewpager其实就和ListView一样的,需要一个Adapter,那么就从Adapter入手。Google提供了一个专门适配ViewPager的Adapter——PagerAdapter
基本ViewPager的Adapter都是这么写的,就是往ViewPager中添加List传过来的View和删除List传过来的View,可以说是每个ViewPager的模板我们找到对应的ViewPager,然后设置Adapter,代码中的initViews、initListener、initData是按顺序执行下去的,这段代码不难,很容易看懂
细心的你可能也发现了该引导页是没有状态栏的,所以我们需要设置其主题为状态栏透明
特别注意:这里需要注意的是图片的大小问题,如果图片高清太大,可能会出现内存溢出的错误。【Android基础控件——ViewPager实现带有动画的引导页】带有动画的引导页编写步骤和传统是一模一样的,只不过给ViewPager设置一个动画。Google提供ViewPager.setPageTransformer(boolean reverseDrawingOrder, PageTransformer transformer)方法来设置引导页的切换效果,这里先看Google提供的切换Demo
文章图片
从上面效果看出,只是在引导页之间添加了一个动画而已,而Google提供的PageTransformer就可以对当前位置的引导页进行操作,比如:设置透明度的变化,设置缩放的变化,就能实现切换的动画效果
从上面的代码中,可以知道在ViewPager滑动的时候,苏月会触发transformPage这个方法,并且会将当前的position和View传递过来,下面就是我们的对View的操作
① position
- position < -1(即-无穷到-1):让引导页消失,透明度为0
- position < =0(即-1到0):让引导页出现
- position < =1(即0到1):让引导页根据position做动画
- 剩下else(即1到无穷):让引导页消失,透明度为0
文章图片
原谅我画图不好看,不生动,如果还不理解的话可以自己打印Log信息,把View和Position都打印出来帮助理解使用PageTransformer非常简单,只要通过ViewPager设置即可
Google还为我们提供了另一个动画效果,看效果图
文章图片
实现步骤其实和上面的步骤是一样的,具体我们来看PageTransformer的编写
这里的原理就不分析了,和上面是一样的,只不过操作不同而已。除了Google提供的Demo之外,我们可以模仿谷歌的Demo,编写出我们自己的动画效果
效果如图
文章图片
好了,今天基础控件就到这里了,如果不懂的话可以自己实践一下,然后用纸笔思考思考,你就会有收获的。我也是通过博客学习别人的博客,然后通过自己的方式,将学习的内容写出来。我们一起加油,后来者们
推荐阅读
- vue打包webapp要点
- Android实战——okhttp3的使用和封装
- app页面用css 的direction 属性解决select 下拉框右对齐
- Android实战——第三方服务之Bmob后端云的推送服务的集成和使用
- Android实战——第三方服务之Bmob后端云的集成用户登陆用户注册获取用户用户注销
- Android实战——Dagger2一场老板与员工的故事会
- Android实战——Glide的使用,加载图片只要一句话
- Android群英传知识点回顾——第八章(Activity与Activity调用栈分析)
- Android实战——第三方服务之Bmob后端云的云应用收纳集小项目