Android 動畫系統(tǒng)匯總

Android動畫系統(tǒng)的種類:

1. 屬性動畫 (Property Animation)

2. 補間動畫 (Tween Animation)

3. 幀動畫 ? ? (Frame Animation)

4. Drawable


屬性動畫(Property Animation):

可以改變控件對象屬性的對象礼仗,譬如控件的位置蠢莺,透明度,旋轉等。

包含兩個基本的Animator:

1.ValueAnimator : 提供一個動畫時序引擎丧枪,用來計算動畫時序內,動畫的值。

使用方式:
private void valueAnimatorTest(final View view) {?
? ? ? ValueAnimator anim = new ValueAnimator(); //創(chuàng)建ValueAnimator
? ? ? anim.setDuration(2000);? // 設置動畫時常
? ? ? anim.setObjectValues(new My()); //設置自定義初始值
? ? ? anim.setEvaluator(new TypeEvaluator<My>() {?
? ? ? ? ? ? ? @Override
? ? ? ? ? ? ? public My evaluate(float fraction, My startValue, My endValue) {
? ? ? ? ? ? ? ? ? ? System.out.println("fraction = " + fraction);
? ? ? ? ? ? ? ? ? ? // fraction:動畫執(zhí)行時間片段
? ? ? ? ? ? ? ? ? ? My my = new My();? // My是一個實體類,可以自定義View的各個屬性值
? ? ? ? ? ? ? ? ? ? return my;
? ? ? ? ? ? ? }
? ? ? });
? ? anim.addUpdateListener(new AnimatorUpdateListener() {
? ? ? ? ? ? ? ? @Override
? ? ? ? ? ? ? ? public void onAnimationUpdate(ValueAnimator valueAnimator) {
? ? ? ? ? ? ? ? ? ? ? My value = (My)valueAnimator.getAnimatedValue(); // 得到當前動畫片段的計算的自定義值廷痘,用來改變控件的屬性
? ? ? ? ? ? ? }
? ? ? });
? ? ? anim.start();
}

2. ObjectAnimator:是ValueAnimator的子類,這里對屬性進行了一層邏輯實現(xiàn)件已,使用者可以直接通過動畫改變控件屬性笋额。

translationX、translationY ? ? ? ? ? ?控制View相對于父布局平移距離
rotation篷扩、rotationX兄猩、rotationY ? ? 控制旋轉
scaleX、scaleY ? ? ? ? ? ? ? ? ? ? ? ? ? ?控制X 、Y軸方向的縮放
pivotX厦滤、pivotY ? ? ? ? ? ? ? ? ? ? ? ? ? ? 縮放和旋轉的支點援岩,默認為View的中心
alpha ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?透明度(0~1)
x、y ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?在父控件中的位置(注意和translationX掏导、translationY的區(qū)分)

使用方式:
1. 控制單個屬性動畫
ObjectAnimator anim = ObjectAnimator.ofFloat(view, "scaleX", 1.0F,? 0.0F).setDuration(500);
anim.start();

2. 控制多個屬性動畫
ObjectAnimator anim = ObjectAnimator.ofFloat(view, "anywords", 1.0F,? 0.0F).setDuration(500);
anim.addUpdateListener(new AnimatorUpdateListener(){
? ? ? ? ? @Override
? ? ? ? ? public void onAnimationUpdate(ValueAnimator animation){
? ? ? ? ? ? ? ? ? ? float cVal = (Float) animation.getAnimatedValue();
? ? ? ? ? ? ? ? ? ? view.setAlpha(cVal);
? ? ? ? ? ? ? ? ? ? view.setScaleX(cVal);
? ? ? ? ? ? ? ? ? ? view.setScaleY(cVal);
? ? ? ? ? }
}
anim.start();


補間動畫 (Tween Animation)

比較簡單羽峰,與屬性動畫相比趟咆,只能改變控件的顯示狀態(tài),不能實際改變控件屬性值梅屉,主要有四中:

1. ScaleAnimation
2. RotateAnimation
3. AlphaAnimation
4. TranslateAnimation

補間動畫相對簡單值纱,具體實現(xiàn)方式可參考其構造方法即可。


幀動畫? ? (Frame Animation)

顧名思義坯汤,就是與電影的播放原理一樣虐唠,逐幀顯示圖片達到動畫的效果,實現(xiàn)方式:

1. 在res目錄下建立 drawable 文件夾
2. 在drawable文件夾目錄下創(chuàng)建? frame.xml 文件
3. frame.xml文件格式

<xml version="1.0" encoding="utf-8"?>
<animation-list xmlns:android="http://schemas.android.com/apk/res/android">
? <item android:drawable="@drawable/pic1" android:duration="200"/>
? <item android:drawable="@drawable/pic2" android:duration="200"/>
? <item android:drawable="@drawable/pic3" android:duration="200"/>
</animation-list>

4. 應用在ImageView中

<ImageView
? ? ....
? ?android:src = "@drawable/frame"
/>

5.? 代碼啟動動畫

AnimationDrawable animationDrawable = (AnimationDrawable) view.getDrawable();
animationDrawable.start();?

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末惰聂,一起剝皮案震驚了整個濱河市疆偿,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌搓幌,老刑警劉巖杆故,帶你破解...
    沈念sama閱讀 206,378評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異溉愁,居然都是意外死亡处铛,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,356評論 2 382
  • 文/潘曉璐 我一進店門拐揭,熙熙樓的掌柜王于貴愁眉苦臉地迎上來撤蟆,“玉大人,你說我怎么就攤上這事堂污〖铱希” “怎么了?”我有些...
    開封第一講書人閱讀 152,702評論 0 342
  • 文/不壞的土叔 我叫張陵敷鸦,是天一觀的道長息楔。 經常有香客問我,道長扒披,這世上最難降的妖魔是什么值依? 我笑而不...
    開封第一講書人閱讀 55,259評論 1 279
  • 正文 為了忘掉前任,我火速辦了婚禮碟案,結果婚禮上愿险,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好辆亏,可當我...
    茶點故事閱讀 64,263評論 5 371
  • 文/花漫 我一把揭開白布风秤。 她就那樣靜靜地躺著,像睡著了一般扮叨。 火紅的嫁衣襯著肌膚如雪缤弦。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,036評論 1 285
  • 那天彻磁,我揣著相機與錄音碍沐,去河邊找鬼。 笑死衷蜓,一個胖子當著我的面吹牛累提,可吹牛的內容都是我干的。 我是一名探鬼主播磁浇,決...
    沈念sama閱讀 38,349評論 3 400
  • 文/蒼蘭香墨 我猛地睜開眼斋陪,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了置吓?” 一聲冷哼從身側響起无虚,我...
    開封第一講書人閱讀 36,979評論 0 259
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎交洗,沒想到半個月后骑科,有當地人在樹林里發(fā)現(xiàn)了一具尸體,經...
    沈念sama閱讀 43,469評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡构拳,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 35,938評論 2 323
  • 正文 我和宋清朗相戀三年咆爽,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片置森。...
    茶點故事閱讀 38,059評論 1 333
  • 序言:一個原本活蹦亂跳的男人離奇死亡斗埂,死狀恐怖,靈堂內的尸體忽然破棺而出凫海,到底是詐尸還是另有隱情呛凶,我是刑警寧澤,帶...
    沈念sama閱讀 33,703評論 4 323
  • 正文 年R本政府宣布行贪,位于F島的核電站漾稀,受9級特大地震影響,放射性物質發(fā)生泄漏建瘫。R本人自食惡果不足惜崭捍,卻給世界環(huán)境...
    茶點故事閱讀 39,257評論 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望啰脚。 院中可真熱鬧殷蛇,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,262評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至匀们,卻和暖如春缴淋,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背昼蛀。 一陣腳步聲響...
    開封第一講書人閱讀 31,485評論 1 262
  • 我被黑心中介騙來泰國打工宴猾, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人叼旋。 一個月前我還...
    沈念sama閱讀 45,501評論 2 354
  • 正文 我出身青樓,卻偏偏與公主長得像沦辙,于是被迫代替她去往敵國和親夫植。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 42,792評論 2 345

推薦閱讀更多精彩內容

  • 1 背景 不能只分析源碼呀油讯,分析的同時也要整理歸納基礎知識详民,剛好有人微博私信讓全面說說Android的動畫,所以今...
    未聞椛洺閱讀 2,691評論 0 10
  • Animation Animation類是所有動畫(scale陌兑、alpha沈跨、translate、rotate)的基...
    四月一號閱讀 1,900評論 0 10
  • 參考于:http://blog.csdn.net/guolin_blog/article/details/4353...
    墨染書閱讀 2,911評論 0 2
  • 我提著慵懶的步子 穿過空曠的石子小道 我在那鍍金的銀杏葉上 ...
    刺客濤濤不絕閱讀 647評論 0 1
  • 我喜歡有終點的旅途兔综,帶著一種難以言表的心情上路饿凛。誰說在路上就一定是流浪,我看見的分明是一路夢一樣真實的風景软驰! ...
    景影閱讀 362評論 0 1