看效果:
效果1:
效果2:
1.首先你得會viewpager控制項的使用(廢話!現在還有人不會使用嗎???!!)
2.你得了解viewpager的乙個**函式viewpager.pagetransformer(用於設定viewpager切換時的動畫效果),我們頁面切換特效基本就靠他了。
當上面的都掌握了,你基本寫出任何頁面轉換特效出來了!我只是拿兩個做案列
一.頁面布局+初始化viewpager(這邊我直接上**了,不細說了!太簡單了)
簡單布局:
初始化viewpager:
viewpager的介面卡**:
至此,我們的準備工作都已經ok! 下面就是真正的乾貨了!!!
二.了解viewpager.pagetransformer(用於設定viewpager切換時的動畫效果)這個這個**函式
1.首先我們看一下這個函式viewpager.pagetransformer:
這個函式有兩個引數乙個是view 還有乙個是position。我先解釋下這個position,首先呢他的有效取值範圍在[-1,1]
我們就是根據這個值的變化來不停的改變view的相應的屬性,以此達到相應的頁面轉換效果!下面 我就以一張圖的形式來解釋下view和position之間的關係 大家看一下**就明白了!
說白了就是我在[0,-1)的時候操作a頁面 在[1,0)操作b頁面 此時頁面對應這個函式中的view變數 當[0.-1)時view是a頁面 當[1,0)時view是b頁面
2.下面就是開始分析第乙個效果,我們可以到的是 a頁面沿著x軸縮小 b頁面沿x軸放大
看**:
接著我們再來分析第二個效果,我們看出是沿著y旋轉180度
看**
該段**中我們設定view的旋轉中心是:
page.setpivoty(page.getmeasuredheight() / 2);
page.setpivotx(page.getmeasuredwidth() / 2);
a頁面y軸旋**[0,-180)
b頁面y軸旋**[180,0)
至此,已經講解完成了!!
讀者只要了解了viewpager.pagetransformer這個**函式基本上頁面切換特效已經掌握了!關於這個函式要了解的就是view和position之間的關係。了解兩者之間的關係 該函式你就已經了解!其次就是屬性動畫的功底(不在本篇文章之內)!
我還在強調一次就是:position可以用變化範圍[-1,1] 他與view的對應的關係是:將設viewpager中的一二兩業分別對應a頁,b頁。那麼ab兩頁對應的position變化就是:a[ 0, -1) b[ 1 , 0 ).讀者了解這個關係之後一切問題就迎刃而解了!!!
ViewPager引導頁面和切換動畫
布局檔案中 引入guide 1 guide 2 guide 3和集合private int mimage new int private listmlist new arraylist for int i 0 i mimage.length i 建立pageradapter介面卡private cl...
ViewPager切換動畫
01.簡單呼叫google官方文件 depthpagetransformer類和 zoomoutpagetransformer類來實現viewpager的切換動畫 02.觀察api的規律,自定義自己的切換動畫 例子 rotatepagetransformer 03.自定義viewpager實現動畫切...
viewpager切換動畫
在設定adapter之前做如下設定 注意 必須是要先初始化viewpager viewpager setpagetransformer true,new cubeouttransformer 他們都有乙個共同的父類 abasetransformer 所以abasetranformer中有如下的子類 ...