Android 實現書籍翻頁效果 完結篇

2021-09-06 14:14:08 字數 1312 閱讀 6145

之前由於種種瑣事,暫停了這個翻頁效果的實現,終於在這週末完成了大部分功能,但是這裡只是給出了乙個基本的雛形,沒有新增翻頁的動畫效果,由於下個周 末開始,需要轉向去研究framework層(短暫的醬油期就這樣結束啦 o(︶︿︶)o唉),將會暫停翻頁的開發,所以想要進一步提高功能的童鞋需要自己動手~~~稍後發布的將是本人提供的完結篇**。  

有圖可以看到,首先是修復了之前翻起頁陰影頂點,定位異常的問題,然後是新增了翻起頁背面的顯示,以及光影效果,並且修復了,放翻頁趨向於垂直方向時,光影效果出現的漂移現象。

文章後邊已經上傳翻頁效果的原始碼了,我這裡不詳細講太多,稍後有時間的話,我會把光影效果這部分**的原理,另外寫一篇部落格。下面只是給個概述,方便大家研究**。

首先分析陰影頂點的定位問題,先來看一種特殊情況:

假設直線at處於垂直位置,兩邊陰影寬度都為一致,假設為25px, 容易得at為25*√2=25*1.414,那麼處於這種特殊情況下的頂點為:

a.x=t.x;

a.y=t.y-25*1.414

現在我們來看一般性情況:

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);

通過以上計算就可以求出陰影頂點座標了。

翻起頁背面分為兩部分求解,第一部分是將原圖翻轉得到:

以上效果是通過建立乙個matrix mmatrix和float mmatrixarray 實現

mmatrix.setvalues(mmatrixarray);

mmatrix.pretranslate(-mbeziercontrol1.x, -mbeziercontrol1.y);

mmatrix.posttranslate(mbeziercontrol1.x, mbeziercontrol1.y);

翻轉之後為了實現翻起後的光影效果,需要使用 colormatrixfilter ,實現以下效果,對這兩個不熟的自己找資料研究去~~~╭(╯^╰)╮

呵呵,大概就是這些個內容了,具體的自己研究**去~~下邊給出乙個程式中各個點的標示,方便研究:

希望大家也把自己改動的地方發布出來一起研究。

ps:我新寫了一篇部落格,在部落格中對原來地翻頁進行了公升級,新增了翻頁動畫效果,並且新新增了乙個類,用於讀取sd卡中對txt

文字,實現了乙個簡易的電子書閱讀器。請有興趣對童鞋,移步至:

Android 實現書籍翻頁效果 完結篇

之前由於種種瑣事,暫停了這個翻頁效果的實現,終於在這週末完成了大部分功能,但是這裡只是給出了乙個基本的雛形,沒有新增翻頁的動畫效果,由於下個週末開始,需要轉向去研究framework層 短暫的醬油期就這樣結束啦 o o唉 將會暫停翻頁的開發,所以想要進一步提高功能的童鞋需要自己動手 稍後發布的將是本...

Android 實現書籍翻頁效果 完結篇

之前由於種種瑣事,暫停了這個翻頁效果的實現,終於在這週末完成了大部分功能,但是這裡只是給出了乙個基本的雛形,沒有新增翻頁的動畫效果,由於下個週末開始,需要轉向去研究framework層 短暫的醬油期就這樣結束啦 o o唉 將會暫停翻頁的開發,所以想要進一步提高功能的童鞋需要自己動手 稍後發布的將是本...

書籍翻頁效果如何實現

一 css3基礎 1 transform的屬性包括 rotate skew scale translate rotate 含義 旋轉 其中 deg 是 度 的意思,如 10deg 表示 10度 下同。demo transform1 skew 含義 傾斜 scale 含義 比例 1.5 表示以1.5的...