免费预览已结束,剩余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. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年学校教职工代表大会制度
- 交通执法面试题库及答案
- 土地登记专员土地登记突发事件应急预案
- 2026年浙江旅游职业学院单招职业适应性考试必刷测试卷及答案解析(名师系列)
- 2026年云南财经职业学院单招职业适应性测试题库附答案解析
- 2026年大理护理职业学院单招职业技能考试题库及答案解析(夺冠系列)
- 2026年哈尔滨应用职业技术学院单招综合素质考试题库附答案解析
- 2026年乌鲁木齐职业大学单招职业倾向性测试题库带答案解析
- 2026年安徽国际商务职业学院单招职业倾向性考试必刷测试卷及答案解析(夺冠系列)
- 2026年河南测绘职业学院单招职业适应性考试必刷测试卷附答案解析
- 《用电检查与稽查》课件
- 《室外排水设计规范》课件
- 12《拿来主义》试讲稿2024-2025学年高中语文必修上册
- 砂石料加工合同
- 早期预警评分量表(MEWS评分表)
- 延长石油6S管理制度宣贯12.8
- 中考英语短语冀教版汇总
- 办公用品运输供货方案
- 噬血细胞综合症护理查房
- 连续性肾脏替代治疗的护理团队标准
- 人美版小学五年级上册美术教案全册
评论
0/150
提交评论