书本翻页实现机制、方案及说明
1. 翻页项目:https://github.com/harism/android_page_curl
2. Android OpenGL ES:简明开发教程
3. CurlAcitivity.java(文件内包含多个类)代码说明:
3.1 首先需要确定照片书在屏幕的位置大小,SizeChangedObserver.java:
默认距离上边距(curlViewMarginTop)为屏幕的0.25(第一次循环就会由0.24增长到0.25),默认距离下边距(curlViewMarginBottom)为屏幕的0.12(第一次循环就会由0.11增长到0.12),然后根据上下边距和屏幕大小(curlview为全屏,屏幕大小即curlview的高度)算出屏幕上相册的高度,然后和模板里product的height的比率就是coverPageScreenAndRealRatio,结合相册高度和上下位置,就可以计算相册左右的边距curlViewMarginLeftOrRight。但因为相册很可能非常的宽,当上下确定时,左右可能会超出屏幕,所以这里用一个循环,当当前的左右边距为负数,即超出了屏幕时,就将上下边距加大,相册屏幕高度变小,最终得到一个合适的左右边距。
3.2 生成每一个页面的bitmap,PageProvider.java:
3.2.1.1 入口方法updatePage():
当页面初始化、用户翻页操作时,CurlView里都会调用updatePages方法,updatePages方法会调用PageProvider里的updatePage方法,返回当前页面的正反面的bitmap。
3.2.1.2 loadBitMapWithCache方法,主要功能是返回当前页面的bitmap,但也包括第一次生成所有相册页面的缩略图,将前后的页面装载到内存等功能。
3.2.1.3 preLoadPageImageOnCache方法是为了提高用户翻页的流畅性,确保当前页面前后的页面已经预加载到内存中的方法
3.2.1.4 writeOnToSDCard方法生成目标页码的缩略图,并加载页面到LruCache。
3.2.1.5 loadBitmap方法:根据模板生成缩略图。
4. CurlView中的onTouch方法:
翻页的行为:
拖拽速度足够时,按照拖拽的方向翻页;拖拽速度不够时按照手指最后的位置判断,手指在相册中线右侧则右翻,左侧则左翻,符合重力规律。
之前有较复杂的逻辑,当时需求是直接点击页面标题就可以进入改变标题的页面,现在已注释,不再赘述。
分享到:
相关推荐
turn.js实现书本翻页效果插件
UICollectionView实现书本翻页布局
Unity实现书本翻页效果
jQuery多功能书本翻页特效是一款带有左右翻页,边角翻页,放大缩小,全屏等功能的jQuery特效代码。
Flash 学习书本翻页效果的实例制作 Flash 由macromedia公司推出的交互式矢量图和 Web 动画的标准。网页设计者使用 Flash 创作出既漂亮又可改变尺寸的导航界面以及其他奇特的效果
Jquery实现简单的书本翻页效果_电纸书翻书效果 Jquery实现简单的书本翻页效果_电纸书翻书效果
书本翻页flash动画
翻书,翻页,点击翻页ppt效果模板。
在android平台下模拟了手指翻页效果,实现了真正的人机互动。
多功能书本翻页整站模板是一款采用flash制作的动画整站模板。
这是一款基于jQuery和CSS3的书本翻页动画特效,该书本翻页插件的外观非常华丽喜庆,非常适合产品活动或者育儿网站使用。我们可以点击左右翻页按钮进行翻页,也可以使用鼠标拖拽页脚来实现翻页动画。这是个jQuery插件...
turn用于书本翻页的插件,支持pc端,移动端,内含demo使用方法。
这是一款支持移动触摸的jQuery书本翻页特效。该特效通过简单的css和js代码,既可以生成书本或杂志翻页的炫酷3D特效。
JS点击书本相册翻页代码
基于HTML5CSS3实现的书本翻页3D动画特效源码 鼠标滑过书本自动翻页.zip
C# WPF 3DBookWriter 3D书本翻页特效 很漂亮 老外写的源代码学习共享
书本翻页,有动画以及代码,能让你感受到书本翻页的效果,用flashcs4制作
UICollectionView实现书本翻页布局(修复BUG)