Andorid 翻书效果

本文内容

  • 项目结构

  • 环境
  • 演示
  • 参考资料

本文有三个演示:

  • 简单翻书效果。翻下一页后,当前页不会消失。
  • 翻书时的贝塞尔曲线。演示翻书时,贝塞尔曲线的路径。
  • 完整翻书效果。

下载 Demo

项目结构



图 1 项目结构                                                                   图 2 程序主界面

环境


  • Windows 2008 R2 64 位

  • Eclipse ADT V22.6.2,Android 4.4.2(API 19)
  • SAMSUNG GT-8618,3.5英寸屏(7.5x5 cm,苹果一样),Android OS 4.1.2

演示


实现翻书效果,就是对当前页和下一页的剪切、组合过程。如图 3 所示,可以看到3个部分:当前页的可见部分(绿色部分);当前页的不可见部分(黄色部分),即当前也的背面;下一页(蓝色部分)。

如果你不了解贝赛尔曲线,先查点资料单独体会一下贝塞尔曲线,也不用太仔细。本例是从触摸屏幕的那个点开始,确定绘制贝塞尔曲线的各个要素,基本都是数学问题。最后,加上效果。

图 3 程序中各个点的标识

需要注意的地方:

1,翻书时,页背面有两部分处理,一是将原图翻转,利用Matrix mMatrix和float[] mMatrixArray 实现,而是,原图翻转后的光影效果,需要使用 ColorMatrixFilter。

2,书边缘的阴影部分。

图 4 简单翻书效果(左:当前书页;中:翻下一页;右:翻上一页)

图 5 翻书时的贝塞尔曲线(左:当前书页;中:翻下一页;右:翻上一页)

在图 5 你可以看到,贝塞尔曲线的各个区域和要素。

图 6 翻书完整效果(第一个:当前书页;第二个:翻下一页;第三个:翻下一页时消失,出现书第二页;第四个:翻上一页)

贝塞尔曲线

数值分析领域中,贝塞尔曲线(Bézier curve)是电脑图形学中相当重要的参数曲线。更高维度的广泛化贝塞尔曲线就称作贝塞尔曲面,其中贝塞尔三角是一种特殊的实例。

贝塞尔曲线于1962年,由法国工程师皮埃尔·贝塞尔(Pierre Bézier)所广泛发表,他运用贝塞尔曲线来为汽车的主体进行设计。贝塞尔曲线最初由Paul de Casteljau于1959年运用de Casteljau算法开发,以稳定数值的方法求出贝塞尔曲线。

  • 线性贝塞尔曲线

其路径由给定点 P0、P1,线性贝塞尔曲线只是两点之间的一条直线。其贝塞尔曲线 B(t):

因此,线性贝塞尔曲线等同于线性插值。

  • 二次方贝塞尔曲线

其路径由给定点 P0、P1、P2,其贝塞尔曲线 B(t):

TrueType 字型就运用了以贝塞尔样条组成的二次贝塞尔曲线。

  • 三次方贝塞尔曲线

P0、P1、P2、P3 四个点在平面或在三维空间中定义了三次方贝塞尔曲线。曲线起始于 P0 走向 P1,并从 P2 的方向来到 P3。一般不会经过 P1 或 P2;这两个点只是在那里提供方向资讯。P0 和 P1 之间的间距,决定了曲线在转而趋进 P3 之前,走向 P2 方向的“长度有多长”。其贝塞尔曲线 B(t):

现代的成像系统,如 PostScript、Asymptote和Metafont,运用了以贝塞尔样条组成的三次贝塞尔曲线,用来描绘曲线轮廓。

  • 一般化

n 阶贝塞尔曲线可做如下推断。给定点 P0、P1、…、Pn,其贝塞尔曲线 B(t):

假设 n=5,则

上面公式可用递归表达。

表示由点 P0、P1、…、Pn 所决定的贝塞尔曲线。则,

换句话说,n 阶的贝塞尔曲线,即双n-1 阶贝塞尔曲线之间的插值。

参考资料


下载 Demo

Andorid 翻书效果

时间: 2024-08-10 02:09:32

Andorid 翻书效果的相关文章

15 个最佳 jQuery 翻书效果插件

本文为你带来15个非常实用的.实现类似翻书效果的jQuery插件,你可以很容易地整合到你的web应用中,提升用户体验. 1.  BookBlock BookBlock可以将任何内容(如图像.文本)创建为翻页效果,带有一个翻页导航,可用于创建小册子等组件. 阅读更多 / 演示 2.  imBookFlip 该插件允许你在iframe或页面中加载电子书,可以设置为在页面加载时开始翻书效果,也可以设置为手动点击时开始.还可以通过Sound Manager添加声音效果. 阅读更多 / 演示 3.  jF

我的项目4 实现Js 翻书效果

这不是我的项目里的内容,因为同事在Iphone移动端需要实现这种翻书效果,解析出来的文件的文字使用HTML写的,而iPhone移动端这种效果出现了一些BUG,很难解决,就考虑有JS写一个,然后用到移动端.所以我就看了一下,感觉挺有意思,就和大家分享一下: 在这里需要用到一个jquery的插件 turn.js   大家如果要看更多的内容可以去这个地址:http://www.oschina.net/news/33508/jquery-plugins-for-book-like-page-flip-e

HTML5翻书效果(双面效果)

上次对用HTML5实现翻书效果进行了试验,比较简单,这次做个升级版的吧 上次的问题: 1)翻书后原先的页面会成一个镜像 2)无法实现双面翻书. 3)翻页时明显感觉似乎有被遮挡的迹象. 这次的升级版本实现过程比较坎坷,主要因为工作比较忙,正好还要学车,每天回家都要陪孩子,只能在孩子睡着后去弄. 本版本主要解决了这些问题: 1)实现了双面的翻页效果 2)解决了翻页被遮挡的问题,我理解是因为三维空间,采用绝对定位,zIndex不够大导致被上层div遮挡. 源码请下载:http://download.c

静态书架和js模拟翻书效果

书籍图片随便找了个,有点难看,须要的自己替换个好看点的png格式图片 源代码下载:http://download.csdn.net/detail/sweetsuzyhyf/7604091 静态书架和js模拟翻书效果,布布扣,bubuko.com

基于CSS3新属性Animation及transform实现类似翻书效果

注:本实例JS部分均以原生JS编写,不善用原生JS的,可用jQuery等对三方框架改写 先上效果图:(样式有点丑,可以忽略一下下,效果出来了就好,后期加到其他项目中方便更改0.0) 类似翻书效果,原本的意思是使用JS来控制的,点击一次之后使用setInterval去控制书页翻过去的动画,当书页翻转180°之后,清除掉setInterval,但当我连续点击,那之前没有翻转180°的书页将无法继续完成之前的动作,可以用清除setInterval的方式,但总感觉动画效果不好,当然还有其他解决办法,但突

【代码笔记】翻书效果的实现

代码: RootViewController.m #import "RootViewController.h" @interface RootViewController () @end @implementation RootViewController - (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil { self = [super initWithNibName:nib

Unity3d:megaFierstext(翻书效果插件)

附件中是一款翻书效果插件,由于附件上传大小限制,在下载完后,需要在megaFierstext_BHYF\Assets\Resources\Textures下添加图片精灵并修改属性为Texture,即可运行看效果.好多论坛上需要用币买,也减少了搜索时间,拿来就可以用. 源码Unity3d:megaFierstext(翻书效果插件)

翻书效果的实现

效果图: 代码: - (void)viewDidLoad { [super viewDidLoad]; // Do any additional setup after loading the view. //初始化背景图 [self initBackgroundView]; } #pragma -mark -functions -(void)initBackgroundView { self.title=@"翻书效果的实现"; self.view.backgroundColor=[U

Turn.js 实现翻书效果的学习与总结

最近CTO给我分配了一个移动端H5开发的任务,主要功能是需要实现翻书效果,我听过主要需求后,当时是呀!!!接下来自己尝试使用fullPage.js和Swiper来实现翻书效果,结果效果都不是非常的理想,后来想起自己曾经做过PC版的翻书效果,当时使用的是Turn.js ,查过其相关API后,整个人突然豁然开朗呀,使用Turn.js 完全可以解决当前我接手这个项目的所有需求呀.现在将个人的学习总结如下,若有不正确的地方,欢迎读者给与批评指正! Turn.js的官方网址: http://www.tur