Android 動畫詳解之View動畫

為瞭讓用戶的使用更舒適所以有些情況使用動畫是很有必要的,Android在3.0以前支持倆種動畫Tween動畫以及Frame動畫。Tween動畫支持簡單的平移,縮放,旋轉,漸變,Frame動畫就像Gif圖通過一系列圖片來模擬動畫效果,而在Android 3.0以後引入瞭新的動畫就是屬性動畫(property
animation), Android 分享一個簡單有趣的動畫效果 就是利用瞭屬性動畫。


今天我們主要來學習Tween動畫也就是View動畫。

View 動畫隻能應用於View對象,而且隻支持一部分屬性,而且對於View
動畫,它隻是改變瞭View對象繪制的位置,而沒有改變View對象本身,比如當前有一個button的坐標是(200,200)通過平移動畫移動到(200,500),但是你點擊移動後的button是沒有任何效果,如下圖:

知道瞭這個大前提我們就開始瞭解View動畫的基本用法吧,動畫可以用java代碼寫也可以用xml寫vc3Ryb25nPjwvcD4KPHA+MaOsxr3Sxravu608L3A+CjxwPjxwcmUgY2xhc3M9″brush:java;”>

duration動畫時間,fillAfter保持動畫結束後狀態,fromXDelta起始X位置,fromYDelta起始Y位置,repeatCount重復次數,repeatMode重復模式 restart為正序 reverse為倒序,在java代碼中用

Animation animation =AnimationUtils.loadAnimation(this, R.anim.tran_btn);

view.startAnimation(animation);

Animation animation2 = new TranslateAnimation(0, 20, 0, 0);
		animation2.setDuration(2000);
		animation2.setRepeatCount(10);
		animation2.setRepeatMode(Animation.RESTART);
		button.startAnimation(animation2);

new TranslateAnimation(fromXDelta, toXDelta, fromYDelta, toYDelta)
看參數相信大傢也都知道意思瞭

2,旋轉動畫


大致同上,pivot旋轉的中心點.

	Animation animation2 = new RotateAnimation(0, 360, 0, 0);
		animation2.setDuration(2000);
		button.startAnimation(animation2);

3,漸變動畫



其實看通一個剩下的都是觸類旁通

Animation animation = new AlphaAnimation(1, 0);
		animation.setDuration(3000);
		button.startAnimation(animation);

4,縮放動畫



ok,這下四種基本動畫都簡單的結束瞭一下,但是我們有時可能會有一些特殊的需求,比如讓播放一組動畫,這時我們可以使用set



    

    

這是旋轉於漸變同時播放,如果依次播放的話隻需加上startOffset



    

    

這樣就可以依次播放,但有時我們想要一下特殊的效果比如說動畫的加速度,這時候我們可以用上interpolator,animation.setInterpolator(new AccelerateInterpolator());

AccelerateDecelerateInterpolator 在動畫開始與結束的地方速率改變比較慢,在中間的時候加速

AccelerateInterpolator 在動畫開始的地方速率改變比較慢,然後開始加速

AnticipateInterpolator 開始的時候向後然後向前甩

AnticipateOvershootInterpolator 開始的時候向後然後向前甩一定值後返回最後的值

BounceInterpolator 動畫結束的時候彈起

CycleInterpolator 動畫循環播放特定的次數,速率改變沿著正弦曲線

DecelerateInterpolator 在動畫開始的地方快然後慢

LinearInterpolator 以常量速率改變

OvershootInterpolator 向前甩一定值後再回到原來位置

謝謝耐心的看完,不積跬步無以至千裡,有什麼疑問的話也可以留言。。

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。