android 翻书动画效果怎么做,android ViewPager实现滑动翻页效果实例代码
实现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实现滑动翻页效果实例代码相关推荐
- Android App开发手机阅读中实现平滑翻书效果和卷曲翻书动画实战(附源码 简单易懂 可直接使用)
需要图片集和源码请点赞关注收藏后评论区留言~~~ 一.平滑翻书效果 与纸质书籍类似,手机上的电子书也有很多页,逐页浏览可采用翻页视图,然而翻页视图犹如一幅从左到右的绵长画卷,与现实生活中上下层叠的书籍 ...
- Android开发笔记(一百五十七)使用OpenGL实现翻书动画
上一篇文章介绍了如何通过纹理渲染绘制地球仪,当然OpenGL的三维图形处理能力是很强大的,只要善于利用OpenGL,就能很方便地虚拟各种现实生活中的动画效果.本文再来谈谈使用OpenGL实现浏览电子书 ...
- android控件翻书效果,android ViewPager实现滑动翻页效果实例代码
实现ViewPager的滑动翻页效果可以使用ViewPager的setPageTransformer方法,如下:import android.content.Context;import androi ...
- 使用OpenGL实现翻书动画
2019独角兽企业重金招聘Python工程师标准>>> 上一篇文章介绍了如何通过纹理渲染绘制地球仪,当然OpenGL的三维图形处理能力是很强大的,只要善于利用OpenGL,就能很方便 ...
- uni-app h5、app模式下集成turn.js 翻书动画
uni-app 集成turnjs 翻书动画 h5 页面 引入JQuery.turn.js 工具类文件,注意引入的顺序 import '@/utils/jquery.min.1.7.js'; impor ...
- HTML5+CSS3小实例:翻书动画
实例:翻书动画 技术栈:HTML+CSS 效果: 源码: <!DOCTYPE html> <html><head><meta http-equiv=" ...
- ViewPager实现滑动翻页效果
实现ViewPager的滑动翻页效果可以使用ViewPager的setPageTransformer方法,如下: import android.content.Context; import andr ...
- Android App开发动画特效之利用滚动器实现平滑翻页(附源码和演示 简单易懂)
需要图片集请点赞关注收藏后评论区留言~~~ 一.利用滚动器实现平滑翻页 在日常生活中,平移动画比较常见,有时也被称为位移动画,左右翻页和上下滚动其实都用到了平移动画,譬如平滑翻书的动画效果,就是位移动 ...
- 如何用transition实现翻书动画效果
下面给大家介绍一个小案例,可以实现翻书的效果,以打开音乐盒为例. 这个案例主要是运用了一个transition的坐标轴,在动画效果中,要求以第二张图片的边缘进行翻页. 代码如下: 先放入两张图片在bo ...
最新文章
- java配置文件实现方式_java相关:详解Spring加载Properties配置文件的四种方式
- 转-linux系统脚本 环境变量 的启动顺序
- HTML5 Canvas 绘制库存变化折线 增加超储告罄线
- opencv求解AX=0
- 20 年后,我们怎么看电影?
- Qt笔记-windows下拷贝文件夹中所有文件
- 支持向量机(SVM)推导
- 2015计算机类专业课类试卷,2015年自考《计算机应用基础》模拟试题及答案
- Android NDK开发之 arm_neon.h文件ABI说明
- 「代码随想录」416. 分割等和子集【动态规划】力扣详解!
- 设计模式——模板方法模式
- 捷径|Instagram去水印教程
- 看程序员如何使用Python快速给视频添加字幕
- udp buffer 和reassemble buffer
- np.delete详解
- 【最新最详细】SQL Server 2019 安装教程{超详细 附网盘下载链接}
- 精彩来袭!华为将携手数据库领域专家出席NDBC 2021
- 【读书笔记】赞成功利主义的学习
- adventure项目 可视化看板总结
- 谨慎使用Encoding.Default
热门文章
- python调用阿里云sdk
- 哲学家就餐问题python解决_关于哲学家就餐问题的分析代码.
- 计算机导论以python为舟大纲,清华大学出版社-图书详情-《计算机科学导论——以Python为舟(第3版)》...
- 台舟电源芯片 TPMP1470使用问题记录
- Visio用UML2.2模板包
- 木鱼《觉醒年代》观后感
- 统计|如何理解假设检验中单侧检验与双侧检验
- Win7高级应用技巧
- 汉字区位码、机内码学习笔记
- linux远程 p2p下载,在linux as3中利用iptables+ipp2p限制bt、eMule等下载