當前位置:首頁 » 安卓系統 » android書籍翻頁

android書籍翻頁

發布時間: 2022-09-25 06:42:58

① Android自定義View——從零開始實現書籍翻頁效果(一)

前言 :本篇是系列博客的第三篇,這次我們要研究 書籍翻頁效果 。不知道大家平時有沒用過iReader、掌閱這些小說軟體,裡面的翻頁效果感覺十分的酷炫。有心想研究研究如何實現,於是網上找了找,發現這方面的教學資料非常少,所幸能找到 何明桂大大 的 Android 實現書籍翻頁效果----原理篇 這樣的入門博客(感謝大大 Orz),我們就以這篇博客為切入點從零實現我們自己的翻頁效果。由於這次坑比較深,預計會寫好幾期,感興趣的小夥伴可以點下關注以便及時收到更新提醒,謝謝大家的支持 ~

本篇只著重於思路和實現步驟,裡面用到的一些知識原理不會非常細地拿來講,如果有不清楚的api或方法可以在網上搜下相應的資料,肯定有大神講得非常清楚的,我這就不獻丑了。本著認真負責的精神我會把相關知識的博文鏈接也貼出來(其實就是懶不想寫那麼多哈哈),大家可以自行傳送。為了照顧第一次閱讀系列博客的小夥伴,本篇會出現一些在之前 系列博客 就講過的內容,看過的童鞋自行跳過該段即可

國際慣例,先上效果圖,本次主要實現了 基本的上下翻頁效果 右側最大翻頁距離的限制

在看這篇博客之前,希望大家能先了解一下書籍翻頁的實現原理,博客鏈接我已經貼出來了。通過原理講解我們知道,整個書籍翻頁效果界面分成了三個區域, A 為當前頁區域, B 為下一頁區域, C 為當前頁背面,如圖所示

書籍翻頁效果的實現就是要以我們 觸摸屏幕位置的坐標 為基礎繪制出這三個區域,形成模擬翻頁的特效。要繪制這三個區域,我們需要通過一組 特定的點 來完成,這些點的坐標需要通過兩個已知的點( 觸摸點 相對邊緣角 )計算得到,下圖我將各個特定點的位置和計算公式貼出來,大家對照著原理一起理解(渣畫工望體諒 ╮(╯▽╰)╭ ),其中 b 點是由 ae cj 的交點, k 點是由 ah cj 的交點

簡單總結一下, a 是觸摸點, f 是觸摸點相對的邊緣角, eh 我們設置為 af 的垂直平分線,則 g af 的中點, ab ak dj 直線 曲線cdb 是起點為 c ,控制點為 e ,終點為 b 二階貝塞爾曲線 曲線kij 是起點為 k ,控制點為 h ,終點為 j 二階貝塞爾曲線 ,區域 A B C 就由這些點和線劃分開來。我們將這些點稱為標識點,下一步就是模擬設定 a f 點的位置,將這組標識點繪制到屏幕上來驗證我們的計算公式是否正確,創建 BookPageView

實體類 MyPoint 用來存放我們的標識點坐標

界面布局:

在Activity中進行注冊

效果如圖

前文我們提到 ab ak dj 直線 曲線cdb 是起點為 c ,控制點為 e ,終點為 b 二階貝塞爾曲線 曲線kij 是起點為 k ,控制點為 h ,終點為 j 二階貝塞爾曲線 。通過觀察分析得知, 區域A 是由View 左上角 左下角 曲線cdb , 直線 ab ak 曲線kij 右上角 連接而成的區域,修改 BookPageView ,利用 path 繪制處 區域A

效果如圖

區域C 理論上應該是由點 a , b , d , i , k 連接而成的閉合區域,但由於 d i 是曲線上的點,我們沒辦法直接從 d 出發通過 path 繪制路徑連接 b 點( i , k 同理),也就不能只用 path 的情況下直接繪制出 區域C ,我們需要用 PorterDuffXfermode 方面的知識「曲線救國」。我們試著先將點 a , b , d , i , k 連接起來,觀察閉合區域與 區域A 之間的聯系。修改 BookPageView

效果如圖

我們將兩條曲線也畫出來對比觀察

觀察分析後可以得出結論, 區域C 由直線ab,bd,dj,ik,ak連接而成的區域 減去 與區域A交集部分 後剩餘的區域。於是我們設置 區域C 畫筆 Xfermode 模式為 DST_ATOP

效果如圖

最後是 區域B ,因為 區域B 處於最底層,我們直接將 區域B 畫筆 Xfermode 模式設為 DST_ATOP ,在 區域A、C 之後繪制即可,修改 BookPageView

效果如圖

翻頁可以從右下方翻自然也可以從右上方翻,我們將 f 點設在右上角,由於View上下兩部分是呈 鏡像 的,所以各標識點的位置也應該是鏡像對應的,因為 區域B和C 的繪制與 f 點沒有關系,所以我們只需要修改 區域A 的繪制邏輯,新增 getPathAFromTopRight() 方法

效果如圖

之前由於測試效果沒有對View的大小進行重新測量,在實現觸摸翻頁之前先把這個結了。重寫View的 onMeasure() 方法

我們的需求是,在上半部分翻頁時 f 點在右上角,在下半部分翻頁時 f 則在右下角,當手指離開屏幕時回到 初始狀態 ,根據需求,修改 BookPageView

在Activity中監聽View的 onTouch 狀態

注意,要設置 android:clickable true ,否則無法監聽到 ACTION_MOVE ACTION_UP 狀態

效果如圖

到這里我們已經實現了基本的翻頁效果,但要還原真實的書籍翻頁效果,我們還需要設置一些限制條件來完善我們的項目

對於一般的書本來說,最左側應該是釘起來的,也就是說如果我們從右側翻頁,翻動的距離是 有限制的 ,最下方翻頁形成的曲線起點( c 點)的x坐標不能小於0(上方同理),按照這個限定條件,修改我們的 BookPageView

效果如圖

至此本篇教程就告一段落了,當然還有許多功能需要繼續完善,例如橫向翻頁、翻頁動畫、陰影效果等等,這些都會在後面的教程中一一解決。如果大家看了感覺還不錯麻煩點個贊,你們的支持是我最大的動力~

② Android PDF讀取後實現翻書效果

網頁鏈接這個?沒做過,可以看一下原文

③ 請問 91熊貓看書安卓版 怎麼改翻頁動畫 。習慣一直往下拉 。不喜歡翻書式翻頁動畫

長按屏幕。然後會有菜單出來,接下來你應該找的到了。

④ 我的安卓手機下載的「TXT聽書」軟體為什麼在聽書的時候不能自動翻頁呢

一個不行就換一個啊,有的軟體兼容性不大好

⑤ 安卓讀書軟體的翻頁問題

看看閱讀軟體的設置里是否有相關內容,或下載另外一個閱讀軟體測試。

⑥ 什麼讀書軟體好用我的手機是安卓系統的,請問什麼軟體可以左右翻頁那樣的看書啊

如果喜歡把小說下載到本地再看的話推薦開卷有益,如果喜歡在線看的話就用91熊貓看書,兩者都有你需要的功能~
望採納

⑦ 安卓手機看書 想用藍牙耳機音量鍵翻頁 怎麼弄呀

這個要根據軟體的設置來, 如果軟體不能用音量翻頁, 藍牙耳機也不行 。我用網易雲閱讀可以用音量鍵翻頁, 裡面也有這個設置, 你可以試下

⑧ 一直用安卓的系統,剛剛買了的IPAD,下了很多看小說的軟體都是模擬翻頁的效果,有沒有滾動翻頁的軟體

其實多數很多閱讀工具都可以設置不同的閱讀方式的,進入書籍之後設置。

回答你要求的滾動翻頁……請安裝IBOOKS,如圖可以選擇圖書、全屏幕、滾動方式閱讀。

注意一般蘋果電子書,盡量下載EPUB格式……而不要TXT格式(這種往往對書籍沒有詳細的整理和索引目錄)

⑨ android中,翻書效果切換view(就是和手機小說閱讀軟體一樣,但是翻頁的是view)

JazzyViewPager 支持Fragment切換動畫的ViewPager,動畫包括轉盤、淡入淡出、翻頁、層疊、旋轉、方塊、翻轉、放大縮小等
項目地址:https://github.com/jfeinstein10/JazzyViewPager
Demo地址:https://github.com/jfeinstein10/JazzyViewPager/blob/master/JazzyViewPager.apk?raw=true
效果類似桌面左右切換的各種效果,不過桌面並非用ViewPager實現而已。
這個是開源的,你可以下下來看看。

熱點內容
電腦登陸加密 發布:2025-01-16 05:21:57 瀏覽:152
安卓怎麼修復閃退 發布:2025-01-16 05:21:54 瀏覽:554
易盾加密 發布:2025-01-16 05:20:51 瀏覽:894
html上傳圖片的代碼 發布:2025-01-16 05:16:55 瀏覽:601
搭建伺服器租用電信的怎麼樣 發布:2025-01-16 05:12:32 瀏覽:49
phpmysql源碼下載 發布:2025-01-16 05:12:31 瀏覽:211
python安裝依賴包 發布:2025-01-16 05:11:45 瀏覽:996
澳門雲主機品牌伺服器 發布:2025-01-16 05:06:55 瀏覽:769
資料庫設計主要內容 發布:2025-01-16 05:02:02 瀏覽:13
存儲過程如何修改 發布:2025-01-16 05:01:55 瀏覽:634