android筆記18-anroid補間動畫

anroid補間動畫:

547fe12c00019e9b05000192.jpg

547fe12c0001fb1a05000241.jpg

547fe12d00018b8e05000281.jpg


都有的屬性:
 duration:表示動畫的持續時間,單位爲毫秒級的;
 interpolator:動畫的加速器;
 repeatCount:動畫的重複次數;
 startOffSet:表示隔多少秒後執行。可以利用這個性質來把set中的各個動畫隔開;

alpha的屬性:(漸變)
 fromAlpha:開始時的透明度;
 toAlpha  :結束時的透明度;
(透明度是0~1,0:代表完全透明,1代表完全不透明);
 fillAfter:表示動畫結束後是否保持當前狀態;
         (true爲保持,false爲回到原來的狀態)

translate的屬性:(移動)
 fromXDelta:
 fromYDelta:
 toXDelta:
 toYDelta:
(分別表示起始的xy座標,結束的xy座標,以原位置爲原點)

scale的屬性:(形變)
 fromXScale:
 fromYScale:
 toXScale:
 toYScale:
(表示縮放的起始大小和終止大小,1爲原來的大小,0表示消失); pivotX:表示縮放中心相對於整個圖片的x位置,輸入爲百分比,如50%;
pivotY:表示縮放中心相對於整個圖片的y位置,輸入爲百分比,如50%;

rotate的屬性:(旋轉)
 fromDegrees:
 toDegrees:
(開始與結束時的角度)
 pivotX:
 pivotY:

set:可以放置多個動畫;
 


通過xml設置補間動畫:
 第一步:在xml中,設置按鈕控件;添加imageView放入到RelativeLayout佈局中;
 第二步:給按鈕設置點擊事件(可以將findViewById與setOnClickListener放在一起來設置);重寫onClick方法,調用view的成員函數getId().並使用switch與case從而判斷觸發了哪一個按鈕;創建並初始化imageView對象。
 第三步:創建Animation對象,初始化賦值爲null。在res文件夾下創建一個新的文件夾,用來存放動畫的xml文件。在新文件夾下創建xml文件注意一定要命名爲anim,(如果文件名爲anim,那麼xml的Resource Type就默認爲Tween Animation)之後從5中類型中(alpha,rotate,scale,set,translate)選擇一種來創建佈局文件;並設置動畫的相應屬性;
 第四步:在case中,調用AnimationUtils類的靜態方法loadAnimation(context,id),並將返回值賦給Animation對象;
  其中context爲上下文對象:this;
      id 爲動畫的xml文件的id:R.anmi....;
 第五步:調用imageView對象的setAnimation()方法並以animation對象作爲參數傳入。



使用代碼設置補間動畫:
 前兩步與xml方式相同;
 第三步:創建函數,返回類型爲Animation;在函數中創建5種Animation類(AlphaAnimation,TranslateAnimation,ScaleAnimation,RotateAnimation,AnimationSet)的對象,並調用函數的構造方法,如創建AlphaAnimation對象的話,構造方法就爲AlphaAnimation(fromAlpha,toAlpha);參數名的含義與alpha的屬性是相對應的;調用相應的函數來設置動畫的屬性,如setDuration(1000)   setFillAfter(true)等,最後返回創建的對象;(注意:如果是AnimationSet的綜合動畫的話,還要在函數裏面創建其他的類型的Animation對象,之後再調用AnimationSet的AddAnimation方法,將各個對象作爲參數一個一個地加入到AnimationSet中去);
 第四步:將創建的函數放到相應的case中,並將返回值賦給第二步中創建的Animation對象;
 第五步:調用imageView對象的setAnimation()方法並以animation對象作爲參數傳入。
 第六步:設置監聽器:調用Animation的setAnimationListener(new AnimationListener())的方法;之後重寫onAnimationStart(),onAnimationRepeat(),onAnimationEnd()這三種方法;

調用Animation的setRepeatCount(),可以設置animation的重複次數;如果設置爲-1,表示重複無限次;
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章