activity加載及退出動畫

   做項目的時候看到很多app裏一般都會在某些界面採用特殊的加載和退出動畫,提高用戶體驗,老師沒講過這方面的知識,所以趁着有時間就自己研究了一下並用到項目中。

   網上已經有很多關於這方面問題的解答,不過大部分都只講了java代碼,沒有具體講到xml文件的寫法,所以去官網看了一下API,http://developer.android.com/guide/index.html,

App Resource---> Resource Types--->Animation Resources--->Tween animation,

但裏面講得也不是特別明確,只能自己嘗試着寫完以後看效果,確定每個屬性值代表的意思。

一、java代碼:

   代碼裏面其實很簡單,只需要加一句代碼即可。

   (1)如果是從A界面跳轉到B界面,則在startActivity(intent)後面加上一句:

   overridePendingTransition(R.anim.in, R.anim.out);

   括號中的參數:前者表示B界面的加載動畫,後者表示A界面的退出動畫。

   (2)如果是關閉B界面,再次顯示出A界面,則是在B界面的finish()後面加上上面那句代碼,括號

      中的參數,同樣的前者表示新界面的加載動畫,後者表示舊界面的退出動畫。

二、xml文件:

   (1)新建一個xml文件,Resource Type選擇Tween Animation,Root Element選擇set,填寫文件名,點finish即可。

   (2)在set的尖括號內寫上xmlns:android="http://schemas.android.com/apk/res/android"

即可,若要設置加速度等屬性,可以在這邊設置,也可以在動畫類型裏面分別設置。

        在尖括號外面,選擇想要的動畫類型,設置相應屬性。如:

       <set xmlns:android="http://schemas.android.com/apk/res/android"

       android:interpolator="@android:anim/linear_interpolator"

       >

       <translate android:fromYDelta="100%"

       android:toYDelta="0%"

       android:duration="500"

       />

       </set>

       translate表示平移動畫,scale是改變大小的動畫,alpha是改變透明度的動畫,rotate則是旋轉動畫,可以只設置一種,也可以幾種動畫結合使用。需注意的是,時間duration如果沒設置,則會看不到效果。

          a、translate:fromYDelta的值可以有三種形式,在此說下百分比的用法:100%表示完全隱於屏幕下方,-100%表示完全隱於屏幕上方,0則是完全顯示在屏幕。同理,fromXDelta的100%和-100%也就表示左右了。

          b、scale:fromXScale的值是float型,0表示完全看不到,1表示完全顯示。pivotX表示圓心,50%表示中心。

          c、rotate:fromDegrees的值是int型,表示角度。界面到位後的角度是0,順時針旋轉得到的角度是正數,反之爲負的。pivotX的值也有三種形式,在此說下百分比的用法:pivotX的0表示屏幕左邊緣,100%表示右邊緣,pivotY。

          d、alpha:fromAlpha的值是float型,0.0表示完全透明,1.0表示完全不透明。

          e、加速度:accelerate_interpolator表示加速;bounce_interpolator表示有彈跳效果;decelerate_interpolator表示減速;linear_interpolator表示勻速



       

   

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章