android翻頁效果
1. Android 頁面切換特效,類似於翻頁或者翻書的切換效果。給源碼或者demo。感激不盡。
用豌豆莢下載個GO安全桌面就可以了,自帶翻頁特效等等
2. 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
效果如圖
至此本篇教程就告一段落了,當然還有許多功能需要繼續完善,例如橫向翻頁、翻頁動畫、陰影效果等等,這些都會在後面的教程中一一解決。如果大家看了感覺還不錯麻煩點個贊,你們的支持是我最大的動力~
3. 如何製作PPT中的翻頁特效,是單頁的,就像android系統那種效果!
有一個和你要求的結果一樣,但是和你預想的方法不一樣的辦法:
1、選中三張圖片,一定要同時選中,你可以用滑鼠畫框,圈選三個圖片(保證三張圖片都在框內,並且框內沒有其它組件。適用於畫面簡單組件少的環境),也可以按住「控制鍵(ctrl,在主鍵盤的左下和右下)」;
2、確保選中了三張圖片以後,在選區內滑鼠右鍵單擊,選擇「自定義動畫」,右邊會出現一個新的對話框,上部有「添加效果」,單擊打開後選擇「隨機效果」。下面會出現相應的特效。
現在,三張圖片的效果已經設置完畢,但是出現的先後順序和速度都沒有設置,現在默認的順序是「三張圖片同時以『隨機效果』和同樣的速度(一般是『非常快』用時0.5秒)」。如果你想讓他們按次序(或單擊後)進入的話請繼續進行如下操作:
3、如果添加完畢之後你還什麼都沒動的話,現在下面的幾個特效應該是同時被默認選中的,如果沒有你可
以按住控制鍵(ctrl)分別選擇三個特效,被選中的特效顯示明顯藍色外框,在特效上面有「開始」「方向」「速度」三個功能,我們心在需要改動的是開始功
能。左鍵點開「開始」後面的「下拉三角」,裡面有「單擊時」「之前」和「之後」,如果你想單擊啟動下一圖片選擇「單擊時」,要是想讓它們自動進入,則選擇
「之後」。
雖然不是你想要的那種粘貼特效,但是也是可以一次同時設置多張圖片的,對於多個類似組件的相同特效也可以用上述方法來完成,對ppt來說是非常節省時間
的,這個方法適合在同一頁ppt中進行操作,多頁的不行,但是你可以把設置完的組件剪切過去不是?一樣的節省時間。
4. Android activity切換時怎麼實現類似ios的翻頁效果
通常情況下是用ViewPager+Fragment來實現滑屏的效果。
1.Fragment是android3.0引入的新控制項,果應用使用在3.0以下、1.6及以上的版本,需要引入v4包。
2.Fragment支持在不同的Activity中使用並且可以處理自己的輸入事件以及生命周期方法等。
3.Fragment的生命周期方法依賴於Activity的生命周期,例如一個Activity的onPause()的生命周期方法被調用的時候這個Activity中的所有的Fragment的onPause()方法也將被調用。
4.FragmentManager提供了對Activity運行時的Fragment的添加、刪除、替換的操作。在Activity運行期間可以添加Fragment而不是在XML布局文件中進行定義。如果打算在Activity中改變Fragment的生命過程。如果要執行添加、刪除、修改的操作,必須通過FragmentManager的對象獲得一個FragmentTransaction對象,通過它的API來執行這些操作。
5.兩個單獨的Fragment之間是不應該進行通信的。應該使用他們所存在的Activity作為溝通的紐帶。
5. android怎麼做類似網頁的左右翻頁
如果實現上下或者左右翻頁效果,我們藉助下這個開源項目:https://github.com/openaphid/android-flip
Aphid FlipView是一個能夠實現Flipboard翻頁效果的UI組件。
下載完畢後導入到當前你的項目中,我們來下上下翻頁的效果圖:
直接貼出代碼:
布局文件:
詳細
6. xamarin android開發 怎麼實現左,右滑動翻頁的效果的
首先第一步是布局main.xml文件
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>
<ViewFlipper
android:id="@+id/flipper"
android:layout_width="wrap_content"
android:layout_height="120dp"/>
</LinearLayout>
第二步:添加照片和在res文件夾下建立一個anim文件,裡面放四個動畫xml文件,分別為left_in.xml,left_out.xml,right_in.xml.right_out.xml
<?xml version="1.0" encoding="utf-8"?>
<!-- 左邊的進來left_in -->
<set
xmlns:android="http://schemas.android.com/apk/res/android">
<translate
android:fromXDelta="100%p"
android:toXDelta="0"
7. android中,翻書效果切換view(就是和手機小說閱讀軟體一樣,但是翻頁的是view)
JazzyViewPager 支持Fragment切換動畫的ViewPager,動畫包括轉盤、淡入淡出、翻頁、層疊、旋轉、方塊、翻轉、放大縮小等
項目地址:https://github.com/jfeinstein10/JazzyViewPager
Demo地址:https://github.com/jfeinstein10/JazzyViewPager/blob/master/JazzyViewPager.apk?raw=true
效果類似桌面左右切換的各種效果,不過桌面並非用ViewPager實現而已。
這個是開源的,你可以下下來看看。
8. android 仿iphone 翻頁
點心桌面有的,最好不要用3D翻頁,耗電啊
9. android 怎麼識別手指滑動翻頁的功能
可以對手勢進行向左或者向右滑動的監聽,其實是對從左到右的距離進行判斷,判斷是從左到右,就是向右翻,執行翻書的動畫效果即可。