標籤:
一直再追郭霖的部落格和imooc上的一些新的視頻,最近有講到屬性動畫。
以下內容為部落格學習以及imooc上視頻資料的學習筆記:
在3.0之前比較常見的動畫為tween動畫和frame動畫:
tween動畫:就是對情境裡的對象不斷的進行映像變化來產生動畫效果(旋轉、平移、放縮和漸層);
frame動畫:即順序的播放事先做好的映像,與gif圖片原理類似,也類似電影效果。
在3.0以後除了支援以上兩種動畫以外,還增加了一個新的動畫:
property animation----屬性動畫。
傳統的animation動畫,舊的animation只適合顯示效果,不適合互動動畫
TranslateAnimation 位移動畫
雖然Imageview可以移動,但是移動後的imageview無法單擊,而在舊的位置可以單擊,這就是舊的animation的效果。
ofFloat第一個參數為要操控的控制項,第二個為要操作的屬性,第三個以及第四個為操作的範圍。
setDuration為操作的時間長度。
屬性動畫在移動後的控制項位置點擊可以toast.
實現控制項旋轉360度。
多個屬性動畫的使用:
按照順序進行動畫播放:
動畫監聽事件:
另外一種添加事件的監聽:
有層次的動畫顯示風格:
setStartDelay()設定延遲時間的屬性
插值器:
setInterpolator(new BounceInterpolator());
ValueAnimator
五秒內button上的內容從1到100:
通過對數值的處理進行動畫效果的處理
常用屬性:
translationX ,translationY----位移距離
rotation , rotationX ,rotationY,----水平或者豎直方向旋轉動畫
scaleX,scaleY----X方向,Y方向的縮放動畫
X,Y,移動到具體那個座標
alpha 透明度
常用的方法和類:
ValueAnimator----數值發生器
ObjectAnimator----ValueAnimator子類
AnimatorUpdateListener---動畫監聽事件
AnimatorListenerAdapter
PropertyValuesHolder
AnimatorSet----動畫集合,即可以同時對一個對象應用幾個動畫,這些動畫可以同時播放也可以對不同動畫設定不同開始位移
TypeEvaluators----根據屬性的開始、結束值與TimeInterpolation計算出的因子計算出目前時間的屬性值
Interplators
nterplators圖解:
AccelerateInterpolator 加速,開始時慢中間加速
DecelerateInterpolator 減速,開始時快然後減速
AccelerateDecelerateInterolator 先加速後減速,開始結束時慢,中間加速
AnticipateInterpolator 反向 ,先向相反方向改變一段再加速播放
AnticipateOvershootInterpolator 反向加回彈,先向相反方向改變,再加速播放,會超出目的值然後緩慢移動 至目的值
BounceInterpolator 跳躍,快到目的值時值會跳躍,如目的值100,後面的值可能依次為85,77,70,80,90,100
CycleIinterpolator 迴圈,動畫迴圈一定次數,值的改變為一正弦函數:Math.sin(2 * mCycles * Math.PI * input)
LinearInterpolator 線性,線性均勻改變
OvershottInterpolator 回彈,最後超出目的值然後緩慢改變到目的值
TimeInterpolator 一個介面,允許你自訂interpolator,以上幾個都是實現了這個介面
來源: <http://www.cnblogs.com/angeldevil/archive/2011/12/02/2271096.html>
相關進階資料:
http://www.cnblogs.com/angeldevil/archive/2011/12/02/2271096.html
AnimatorSeth和AnimatorListener:http://blog.csdn.net/new_abc/article/details/40143091
使用ObjectAnimator設定動畫:http://blog.csdn.net/new_abc/article/details/40106569
使用ValueAnimator設定動畫:http://blog.csdn.net/new_abc/article/details/40072499
android 屬性動畫