Android 实现书籍翻页效果完结篇

摘要:
非原件转移自:http://blog.csdn.net/hmg25/article/details/6342539翻页效果的实施因各种琐事而暂停,大部分功能最终在本周末完成。但这里有一个基本的原型,没有添加翻页的动画效果。从下周末开始,我们需要转向框架层的研究(短暂的酱油期到此结束),翻页的开发将暂停,因此,想要进一步提高功能的童鞋需要自行移动

非原创转自:http://blog.csdn.net/hmg25/article/details/6342539

之前由于种种琐事,暂停了这个翻页效果的实现,终于在这周末完成了大部分功能,但是这里只是给出了一个基本的雏形,没有添加翻页的动画效果,由于下个周末开始,需要转向去研究framework层(短暂的酱油期就这样结束啦 o(︶︿︶)o唉),将会暂停翻页的开发,所以想要进一步提高功能的童鞋需要自己动手~~~稍后发布的将是本人提供的完结篇代码。  

    今天一个热心的csdn好友-- xiaofanqingzjj 告诉我:“这两天把你的代码整了一下,实现了 根据滑动速度或位置翻页自动彈回,或者自动翻转到下一页的动画,等整好了,再发布上来”, 呵呵,感想他的热心,也希望以后大家有什么好的改进也可以发布出来让大家都可以一起学习下。

   闲话少说,在最后关头和大家说说完结篇代码里的改进 ,上图看效果:



<ignore_js_op style="word-wrap: break-word;">1.gif

<ignore_js_op style="word-wrap: break-word;">2.gif

 



    有图可以看到,首先是修复了之前翻起页阴影顶点,定位异常的问题,然后是添加了翻起页背面的显示,以及光影效果,并且修复了,放翻页趋向于垂直方向时,光影效果出现的漂移现象。

    文章后边已经上传翻页效果的源码了,我这里不详细讲太多,稍后有时间的话,我会把光影效果这部分代码的原理,另外写一篇博客。下面只是给个概述,方便大家研究代码。

   首先分析阴影顶点的定位问题,先来看一种特殊情况:



<ignore_js_op style="word-wrap: break-word;">3.gif

 


      假设直线aT处于垂直位置,两边阴影宽度都为一致,假设为25px, 容易得aT为25*√2=25*1.414,那么处于这种特殊情况下的顶点为:

  a.x=T.x;

a.y=T.y-25*1.414


现在我们来看一般性情况:



<ignore_js_op style="word-wrap: break-word;">4.gif

 


AT依旧为25*1.414,那么如果要定位A点的坐标,就需要求出AB和BT的长度(AB垂直于BT),通过分析可以知道夹角BAT,等于45度角加上夹脚DTE,而夹脚DTE是可以通过Touch点和mBezierControl1的坐标求出的:


    Math.atan2(mBezierControl1.y - mTouch.y, mTouch.x- mBezierControl1.x);



   通过以上计算就可以求出阴影顶点坐标了。


翻起页背面分为两部分求解,第一部分是将原图翻转得到:



<ignore_js_op style="word-wrap: break-word;">5.gif

 


以上效果是通过创建一个Matrix mMatrix和float[] mMatrixArray 实现



mMatrix.setValues(mMatrixArray);

mMatrix.preTranslate(-mBezierControl1.x, -mBezierControl1.y);

mMatrix.postTranslate(mBezierControl1.x, mBezierControl1.y);



翻转之后为了实现翻起后的光影效果,需要使用 ColorMatrixFilter ,实现以下效果,对这两个不熟的自己找资料研究去~~~╭(╯^╰)╮


<ignore_js_op style="word-wrap: break-word;">6.gif

 


呵呵,大概就是这些个内容了,具体的自己研究代码去~~下边给出一个程序中各个点的标示,方便研究:



<ignore_js_op style="word-wrap: break-word;">7.gif

 




Android 实现书籍翻页效果----原理篇
http://www.eoeandroid.com/forum. ... &fromuid=749688
Android 实现书籍翻页效果----源码篇
http://www.eoeandroid.com/forum. ... &fromuid=749688
Android 实现书籍翻页效果----完结篇
http://www.eoeandroid.com/forum. ... &fromuid=749688

Android 实现书籍翻页效果----升级篇
http://www.eoeandroid.com/forum. ... &fromuid=749688


<ignore_js_op style="word-wrap: break-word;">
Android 实现书籍翻页效果完结篇第8张

turntest.rar

 

739.57 KB, 下载次数: 51, 下载积分: e币 -2 元

 

这个代码我没有测试能不能用

免责声明:文章转载自《Android 实现书籍翻页效果完结篇》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇用chrome模拟微信浏览器访问页面微服务中的网关下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

让DIV中文字换行显示

让DIV中文字换行显示 1. <style> div { white-space:normal; word-break:break-all; word-wrap:break-word; } </style> &...

CSS之换行——workbreak 和 wrodwrap

在CSS样式中如何换行?我们看到了 work-break 和 wrod-wrap属性。它们有什么区别和联系? 定义和用法 word-break 属性规定自动换行的处理方法。 wrod-wrap允许长词换到下一行。   word-break wrod-wrap 默认值 normal 继承性 yes 版本 CSS3 JavaScript...