android三種動畫的認識
阿新 • • 發佈:2018-12-24
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()); }