实现ViewPager的滑动翻页效果可以使用ViewPager的setPageTransformer方法,如下:import android.content.Context;import android.support.v4.view.ViewPager;import android.util.AttributeSet;import android.view.View;public class ReadViewPager extends ViewPager{ public ReadViewPager(Context context) { super(context); } public ReadViewPager(Context context, AttributeSet attrs) { super(context, attrs); setAnima(); } public void setAnima() { setPageTransformer(true, new PageTransformer() { private static final float MIN_SCALE = 0.75f; @Override public void transformPage(View view, float position) { int pageWidth = view.getWidth(); int pageHeight =view.getHeight(); if (position < -1) { // [-Infinity,-1) // This page is way off-screen to the left. view.setAlpha(0); } else if (position <= 0) { // [-1,0] // Use the default slide transition when moving to the left page view.setAlpha(1); view.setTranslationX(0); view.setScaleX(1); view.setScaleY(1); } else if (position <= 1) { // (0,1] // Fade the page out. view.setAlpha(1 - position); // Counteract the default slide transition// view.setAlpha(1); view.setTranslationX(pageWidth * -position); // Scale the page down (between MIN_SCALE and 1) float scaleFactor = MIN_SCALE + (1 - MIN_SCALE) * (1 - Math.abs(position)); view.setScaleX(scaleFactor); view.setScaleY(scaleFactor); } else { // (1,+Infinity] // This page is way off-screen to the right. view.setAlpha(0); } } }); }}

核心代码是android官方demo,以上实现的是翻页效果是:上面一页被滑出界面时,下面一页慢慢显现,透明度慢慢加大,并且大小由小慢慢变大。

不过有一个奇怪的现象,当我做一个答题界面时,刚刚开始我采用ViewPager与View结合实现无限循环切换,并且采用上面的动画效果,可是每当我滑动到最后一张,也就是要开始新的一轮循环的时候,被滑出去的一页也会出现慢慢变透明的情况,而我用ViewPager结合Fragment实现无限循环切换的是就不会出现这种效果

如果想要实现仿造驾考宝典的翻页效果,只要把核心方法改为以下代码便可以了setPageTransformer(true, new PageTransformer() { private static final float MIN_SCALE = 0.75f; @Override public void transformPage(View view, float position) { int pageWidth = view.getWidth(); int pageHeight =view.getHeight(); if (position < -1) { // [-Infinity,-1) // This page is way off-screen to the left. view.setAlpha(0); } else if (position <= 0) { // [-1,0] // Use the default slide transition when moving to the left page view.setAlpha(1); view.setTranslationX(0); view.setScaleX(1); view.setScaleY(1); } else if (position <= 1) { // (0,1] // Fade the page out.// view.setAlpha(1 - position); // Counteract the default slide transition view.setAlpha(1); view.setTranslationX(pageWidth * -position); // Scale the page down (between MIN_SCALE and 1)// float scaleFactor = MIN_SCALE// + (1 - MIN_SCALE) * (1 - Math.abs(position));// view.setScaleX(scaleFactor);// view.setScaleY(scaleFactor); } else { // (1,+Infinity] // This page is way off-screen to the right. view.setAlpha(0); } } });

下面我们来讲讲position参数:

position的可能性的值有:

[-Infinity,-1) 已经看不到了

(1,+Infinity] 已经看不到了

[-1,1]

重点看[-1,1]这个区间 , 其他两个的View都已经看不到了~~

假设现在ViewPager在A页现在滑出B页,则:

A页的position变化就是( 0, -1]

B页的position变化就是[ 1 , 0 ]

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。

android控件翻书效果,android ViewPager实现滑动翻页效果实例代码相关推荐

  1. android控件常用的属性,android?常用的控件属性

    1.Android RelativeLayout 属性 // 相对于给定ID控件 android:layout_above 将该控件的底部置于给定ID的控件之上; android:layout_bel ...

  2. android控件详解大全 android开发有关资料

    http://lixinglong2055.web-82.com 看到朋友的好东西,留下链接地址收藏起来慢慢学习.互相学习,和大家分享一下,多多进步,加油! 一.Android控件之DatePicke ...

  3. android 控件监听方法,Android界面控件(2)—注册点击事件监听器

    Button和ImageButton 1.添加控件 1.打开Android项目下,res文件夹中的 layout 的 activity_main.xml 文件 2.可视化界面拖拽添加或修改 xml 文 ...

  4. android 控件突然变小,android中自定义控件

    说道android中的自定义控件就不得不说一下自定义控件的属性了,那么如何正确的自定义控件的属性呢? 下面我们来看一个例子,然后就很轻松的明白了 --------------------------- ...

  5. android 控件id为0,Android Studio错误:(3,0)未找到ID为“com.android.application”的插件...

    我是 Android工作室的新手,有人写了一个最初用于应用发明家的应用程序.我按照他的模板,添加了新的东西.该应用程序与Gradle有问题,并给我以下内容. "Error:(3, 0) Pl ...

  6. android 控件资源命名规范,Android 资源命名规范整理

    参考结合官方.各厂.各博客标准命名规范,整理出的符合 Android 风格的资源命名规则. 布局文件(Layout)命名 _ eg1.activity_home eg2.item_countrylis ...

  7. android控件在同一水平,android – 在linearlayout中水平对齐按钮,间距相等

    我试图制作一个线性布局,水平放置5个按钮,间距相等,但所有按钮的大小(宽度)应仅为40dp. 我试过这个: android:background="#DCE1DC" android ...

  8. android 翻书动画效果怎么做,android ViewPager实现滑动翻页效果实例代码

    实现ViewPager的滑动翻页效果可以使用ViewPager的setPageTransformer方法,如下: import android.content.Context; import andr ...

  9. Android控件人生第一站,小红书任意拖拽标签控件

    前言 工作三年有余,年纪大了专业技能到没长进,有时候闲的时候总想写点东西出来,由于自己的懒惰一直拖拖拉拉,好几次还没开始就放弃了,大家也都知道,学编程的大多数不善于表达,加上自己的专业技能确实不怎么样 ...

最新文章

  1. 【MaxCompute】学习笔记操作表sql
  2. halcon知识:差分模板variation_model
  3. php 强制刷新一次,强制浏览器使用PHP刷新所有内容
  4. .NET(C#)基于Socket编程实现平行主机之间网络通讯有图片传输的Demo演示
  5. 201521123060 《Java程序设计》第12周学习总结
  6. 20161013 晨报
  7. Guacamole 介绍以及架构
  8. 【服务器】宝塔部署eoLinker开源版
  9. eclipse一些实用小技巧
  10. 归并排序-自底向上的归并排序算法
  11. c语言编辑二维数组转置,求C语言程序:编写一个函数,使给定的一个二维数组(3*3)转置。感激不尽...
  12. orcad的交流分析
  13. LiveZilla 详细 配置 设置 (二) 安装 LiveZilla
  14. 苹果授权登录(Sign in with Apple)-JAVA后端开发
  15. MSE、RMSE、MAE、R方等指标整理
  16. 【MATLAB深度学习工具箱】学习笔记--体脂估计算例再分析:拟合神经网络fitnet里面的数据结构】
  17. 依托数网星工业互联网平台构建能源管理平台,助力企业能耗结构优化
  18. 深度学习目标检测 RCNN F-RCNN SPP yolo-v1 v2 v3 残差网络ResNet MobileNet SqueezeNet ShuffleNet
  19. IDEA项目无法引用本地Class类,而且各种报错
  20. Hadoop理论——hdfs读、写流程

热门文章

  1. java xtend_简化Java语法 Eclipse推出Xtend
  2. java 1.8下载_jre1.8官方下载-JAVA运行环境(jre8 64位)1.8.0.25 官网最新版【离线版】下载_东坡手机下载...
  3. Vue爬坑之路 二:使用Muse-UI前端框架及axios,实现简单登录页
  4. 西游记中的袁守诚的真实身份是谁?为何能知玉帝谕旨?
  5. 最好的降噪蓝牙耳机有哪些?目前最好的降噪蓝牙耳机推荐
  6. mysql dlz驱动,安装wddns3 /dlz_mysql_driver.c:76:19: 错误:mysql.h:没有那个文件或目录...
  7. bind9 dlz mysql_bind9+dlz+mysql连接断开问题
  8. python绘制分形图形教程_#python绘制分形图形教程#如何用Python绘制Circos图
  9. 肠道-甲状腺轴如何影响健康
  10. unity 陶瓷质感_一种基于Unity3D的虚拟陶瓷设计方法与流程