免费预览已结束,剩余1页可下载查看
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
之前看到像ipad上的ibook的模拟书籍翻页的特效感觉很炫,在Android上也有像laputa和ireader等应用实现有这个特效,在网上搜索了一下好像也没有现成的例子,所以自己动手实现了一个,现在将实现的过程记录下来。 实现真实的翻页效果,为了能在翻页的过程中看到下一页的内容,在翻页之前必须准备两张页面,一张是当前页,另一张是下一页。翻页的过程就是对这两张页面的剪切,组合过程。用户看到的可以分为3部分:当前页的可见部分(下图绿色部分),把书页翻起来后看到的背面区域(下图黄色部分),把书页翻起来后看到的下一页的一角(下图蓝色部分)。假设我们已经求得了包含黄色区域和蓝色区域的Path, 假设为mPath0,那么绿色区域则可以使用Canvas.clipPath(mPath0, Region.Op.XOR)来剪裁绘制;而蓝色区域则可以通过使用(假设黄色区域的Path为mPath1)Canvas.clipPath(mPath0); Canvas.clipPath(mPath1, Region.Op.DIFFERENCE); /绘制第一次不同于第二次的区域 对clipPath不是很熟的童鞋可以去复习下 自带apidemo的Clipping例子。下面我们来研究如何求取mPath0:上图黄色和蓝色区域的mPath0,可以通过以下获取:mPath0.moveTo(jx, jy); mPath0.quadTo(hx, hy, kx, ky); mPath0.lineTo(ax, ay); mPath0.lineTo(bx, by); mPath0.quadTo(ex, ey, cx,cy); mPath0.lineTo(fx, fy); mPath0.close(); 接着就是要求出绘制path0所需的各个顶点。我们已知的条件是:a点坐标(触摸点),f点坐标(显示界面的大小),直线eh是af的垂直平分线。剩下的就变成数学问题啦先来求出g点坐标因为g为af中点:显然gx=(ax+fx)/2; gy=(ay+fy)/2;e点坐标:添加补助线gm,m点坐标为(gx, mHeight);由相似垂直三角形egm和gmf可知:em=gm*gm/mf;这样e点坐标为:(gx-em, mHeight)同理可以求出h点坐标。C点坐标:为简化计算,我们令n点为ag中点,这样有三角形cjf和ehf得:cx=ex- ef/2 ;c点坐标为:(ex- ef/2, mHeight)同理求得j点坐标。以下推导需要较多的数学知识,不记得的童鞋,自觉复习去一条直线的函数为:Y=ax+b;通过已知两点求直线: a = (y2-y1)/(x2-x1);b = (x2*y1-y2*x1)/(x2-x1);两条相交直线交点的坐标为:x= (b2-b1)/(a1-a2);y=a1x+b1或者y=a2x+b2综上,4点相交的直线的交点为:x=( (x4*y3-y4*x3)/(x4-x3)-(x2*y1-y2*x1)/(x2-x1) /(y2-y1)/(x2-x1)- (y4-y3)/(x4-x3) )= ( (x4*y3-y4*x3) (x2-x1)- (x2*y1-y2*x1) (x4-x3) ) /( (y2-y1) (x4-x3)- (y4-y3) (x2-x1) )将之前求得的 a,e,c,j四个点带入上式则可以求出 b. 同理可求k点。d点坐标:d为pe的中点,所以:dx=(cx+bx)/2+ex)/2dy=(cy+by)/2+ey)/2同理 可求 i 点。通过上述求解,绘制翻页效果的各个顶点均已得出,剩下的就是贴图,绘制阴影。这部分将在于后的文章中介绍,嘻嘻,喜欢研究的童鞋可以自己试试,懒人们,代码前给大家讲解了Android实现书籍翻页效果的原理,并在文章结尾处说明要发布源码,呵呵,但是最近有不少琐事缠身,原计划给大家的源码demo没有时间完成,可能要delay啦但是由于源码实现啦原理篇所说的大部分效果,只是在阴影方面还是有些bug,所以我将它贴出了让大家都来一起帮忙实现,毕竟授人鱼不如授人渔,实践才是王道。下面是demo的画面,可以实现四个角的拖拽由上图可以看到,源码实现啦,翻起页背面和当前页的光影效果,但是翻起页背面的光影效果未实现。红圈标明处,为翻起页投射在当前页上的阴影的顶点没有定位好,出现的bug,暂时没有时间来修改,需要等手上琐事完成啦在继续,欢迎大家来修改,最好将修改
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 健康管理与慢病预防好用知识手册
- 估值分析师估值前沿技术探讨
- StarterWeletoJuniorHigh!Knowyourschool课件-外研版英语七年级上册
- 健康经理健康管理工作创新案例
- 公园绿化布局规划与面试攻略
- 不锈钢螺栓建设项目可行性分析报告(总投资14000万元)
- 消防安全小学课件
- 2025年消防安全知识培训考试题库及答案:基础常识篇消防设施设备操作试题
- 2025年消防安全知识竞赛题库及参考答案
- 施工三级安全教育课件
- 展位租赁搭建合同(标准版)
- 战术战伤救护培训课件
- 全屋定制营销知识培训
- 广东省珠海市紫荆中学2024-2025学年七年级上学期语文11月期中试卷(含答案)
- 西妥昔单抗治疗相关皮疹的护理与管理
- 危机公关案例分析试题及答案
- 2025年高中历史教师课程标准考试模拟试卷及答案
- 山西省食品安全突发事件应急预案
- 服刑人员心理健康讲座
- 幼儿园新教师舞蹈培训
- 儿童腺病毒肺炎
评论
0/150
提交评论