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表示匀速



       

   

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