1. 程式人生 > >android三種動畫的認識

android三種動畫的認識

Android包含三種動畫:View Animation(補間)、 Drawable Animation(幀動畫)、Property Animation(屬性動畫)。

View Animation:

基於View的漸變動畫,她只改變了View的繪製效果,而實際屬性值未變。比如動畫移動一個按鈕位置,但按鈕點選的實際位置仍未改變。在程式碼中定義動畫,可以參考AnimationSet類和Animation的子類;而如果使用XML,可以在res/anim/資料夾中定義XML檔案。

 public static void hideView(View mView,int i){
        RotateAnimation ra=new RotateAnimation(0,180,mView.getWidth()/2,mView.getHeight());
        ra.setDuration(500);//動畫持續時間
        ra.setStartOffset(i);//動畫延遲時間
        ra.setFillAfter(true);//設定動畫停留在完成的位置
        mView.startAnimation(ra);
    }

Drawable Animation:

載入一系列Drawable資源來建立動畫,這種傳統動畫某種程度上就是建立不同圖片序列,順序播放,就像電影膠片。在程式碼中定義動畫幀,使用AnimationDrawable類;XML檔案能更簡單的組成動畫幀,在res/drawable資料夾,使用採用來定義不同的幀。感覺只能設定的屬性是動畫間隔時間。

Property Animation:

動畫的物件除了傳統的View物件,還可以是Object物件,動畫之後,Object物件的屬性值被實實在在的改變了。Property animation能夠通過改變View物件的實際屬性來實現View動畫。任何時候View屬性的改變,View能自動呼叫invalidate()來試試重新整理。

 public static void hideView(View mView,int i){
        bjectAnimator animator=ObjectAnimator.ofFloat(mView,"rotation",0,180);
        animator.setDuration(500);
        animator.setStartDelay(i);
        animator.start();
        mView.setPivotX(mView.getWidth()/2);
        mView.setPivotY(mView.getHeight());
        }