android動畫學(xué)習(xí)(1)一Tween動畫

這篇文章Android 動畫基礎(chǔ) 對我動畫的學(xué)習(xí)有很大的幫助焕阿,感謝作者的無私奉獻。

在android 3.0以前首启,android支持兩種動畫模式暮屡,tween animation,frame animation,在android3.0中又引入了一個新的動畫系統(tǒng):property animation毅桃,這三種動畫模式在SDK中被稱為property animation,view animation,drawable animation褒纲。 可通過NineOldAndroids項目在3.0之前的系統(tǒng)中使用Property Animation

****需要注意的是:tween動畫的xml文件放在anim文件夾下,frame動畫的xml文件放在drawable文件夾下钥飞,Property動畫xml文件放在animator文件夾下莺掠,在設(shè)置動畫時間duration時,它的單位ms代承,1000ms=1s**
本篇文章從Tween動畫講起

一.Tween動畫

Tween動畫指的是android.view.animation包下的各個動畫汁蝶。又稱View Animation:補間動畫,給出兩個關(guān)鍵幀论悴,通過一些算法將給定屬性值在給定的時間內(nèi)在兩個關(guān)鍵幀間漸變掖棉。


http://www.lightskystreet.com/img/anim_basic_knowledge/tweenhirachy.png

當然布局文件是可以定義這些動畫,布局文件必須有一個獨立的根元素膀估,可以是 <alpha>,<scale>, <translate>, <rotate>, <set>(持有一組其它的動畫元素幔亥,甚至可以是內(nèi)嵌的set元素) 中的一個,文件是放在anim文件夾下察纯。其應(yīng)用并開啟動畫帕棉,是通過一下代碼實現(xiàn):

ImageView image = (ImageView) findViewById(R.id.image); 
Animation hyperspaceJump = AnimationUtils.loadAnimation(this, R.anim.hyperspace_jump); 
image.startAnimation(hyperspaceJump);

以上分為五類:縮放针肥、平移、漸變香伴、旋轉(zhuǎn),與動畫集合
我會對著5類進行講解

1. 縮放動畫:ScaleAnimation-主要控制尺度變化的動畫類(xml使用<scale>)

使用以下構(gòu)造方法可獲取ScaleAnimation對象:

ScaleAnimation(float fromX, float toX, float fromY, float toY, int pivotXType, float pivotXValue, int pivotYType, float pivotYValue)

其中參數(shù):

  • fromX:動畫開始X坐標上的伸縮尺度慰枕;相等于xml文件的fromXScale
  • toX:動畫結(jié)束X坐標上的伸縮尺度;相等于xml文件的toXScale
  • fromY:動畫開始Y坐標上的伸縮尺度即纲;相等于xml文件的fromYScale
  • toY:動畫結(jié)束Y坐標上的伸縮尺度具帮;相等于xml文件的toYScale
    Float值,為動畫起始到結(jié)束時低斋,X蜂厅、Y坐標上的伸縮尺寸
    0.0表示收縮到?jīng)]有(0.0f)
    1.0表示正常無伸縮 (1.0f)
  • pivotXType:X坐標上的伸縮模式,取值有:Animation.ABSOLUTE, Animation.RELATIVE_TO_SELF, Animation.RELATIVE_TO_PARENT膊畴;
  • pivotYType:Y坐標上的伸縮模式掘猿,取值有:Animation.ABSOLUTE, Animation.RELATIVE_TO_SELF, Animation.RELATIVE_TO_PARENT;
    RELATIVE_TO_PARENT 相對于父控件
    RELATIVE_TO_SELF 相對于自己本身
    ABSOLUTE 絕對坐標
  • pivotXValue:X坐標上的伸縮值唇跨;相當于xml文件的pivotX
  • pivotYValue:Y坐標上的伸縮值稠通;相當于xml文件的pivotY
    代表縮放的中軸點X/Y坐標,浮點值
    如果我們想表示中軸點為圖像的中心轻绞,我們可以把兩個屬性值定義成0.5或者50%采记。
2. 平移動畫:TranslateAnimation-主要控制位置變換的動畫實現(xiàn)類(xml使用<translate>)

使用以下構(gòu)造方法可獲取TranslateAnimation對象:

TranslateAnimation(float fromXDelta, float toXDelta, float fromYDelta, float toYDelta)

其中參數(shù)

  • fromXDelta:動畫開始的X坐標;
  • toXDelta:動畫結(jié)束的X坐標政勃;
  • fromYDelta:動畫開始的Y坐標唧龄;
  • toYDelta:動畫結(jié)束的Y坐標;
    **代表動畫起始或者結(jié)束X / Y方向上的位置奸远,F(xiàn)loat或者百分比值
    浮點數(shù)num%既棺、num%p分別相對于自身或者父控件
    如果以浮點數(shù)字表示,是一個絕對值懒叛,代表相對自身原始位置的像素值丸冕;
    如果以num%表示,代表相對于自己的百分比薛窥,比如toXDelta定義為100%就表示在X方向上移動自己的1倍距離

如果以num%p表示胖烛,代表相對于父類組件的百分比。**

3.漸變動畫:AlphaAnimation-主要控制透明度變化動畫類(xml使用<alpha>)

使用以下構(gòu)造方法可獲取AlphaAnimation對象:

AlphaAnimation(float fromAlpha, float toAlpha)

其中參數(shù)

  • fromAlpha:動畫開始時的透明度(取值范圍為0.0到1.0)诅迷;
  • toAlpha:動畫結(jié)束時的透明度佩番;

代表動畫開始和結(jié)束時透明度,0.0表示完全透明罢杉,1.0表示完全不透明趟畏,F(xiàn)loat值

旋轉(zhuǎn)動畫:RotateAnimation-主要控制旋轉(zhuǎn)的動畫實現(xiàn)類(xml使用<rotate>)

使用以下構(gòu)造方法可獲取RotateAnimation對象:

RotateAnimation(float fromDegrees, float toDegrees, int pivotXType, float pivotXValue, int pivotYType, float pivotYValue)
  • fromDegrees:旋轉(zhuǎn)開始角度;
  • toDegrees:旋轉(zhuǎn)結(jié)束角度滩租;
    代表起始和結(jié)束的角度赋秀,浮點值利朵,單位:度
  • pivotXType, pivotXValue, pivotYType, pivotYValue與尺度變化動畫ScaleAnimation類似;
    **其中android:pivotX 屬性代表旋轉(zhuǎn)中心的X坐標值
    android:pivotY 屬性代表旋轉(zhuǎn)中心的Y坐標值
    Float值或者百分比
    這兩個屬性也有三種表示方式猎莲,但是X軸都是相對方向都是Left绍弟,Y軸都是相對于Top
    浮點數(shù)、num%著洼、num%p晌柬;
    數(shù)字方式代表相對于自身左邊緣的像素值,
    num%方式代表相對于自身左邊緣或頂邊緣的百分比郭脂,
    num%p方式代表相對于父容器的左邊緣或頂邊緣的百分比 **

上面的4個動畫都可以調(diào)用setRepeatCount(),setDuration()等等方法澈歉。

5.動畫集合:AnimationSet(xml使用<set>)

常使用以下構(gòu)造方法可獲取RotateAnimation對象:

AnimationSet(boolean shareInterpolator)

其中參數(shù)

  • shareInterpolator:Boolean值展鸡, true:代表在所有的子元素中共享同一個插值器
  • 其中<set>有屬性android:interpolator
    應(yīng)用于動畫的插值器。該值必須是一個指定了插值器資源的引用(不是一個插值器的類名)埃难,在平臺中有缺省的插值器資源可以使用莹弊,或者你可以創(chuàng)建自己的插值器資源,可以看下面關(guān)于插值器的討論涡尘。
  • 其中<set>有屬性android:fillAfter=”true”后忍弛,這個動畫執(zhí)行完之后保持最后的狀態(tài)
通過調(diào)用addAnimation(),來添加各種tween動畫考抄,也包括AnimationSet细疚。

下一篇文章我會對插值器進行介紹

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市川梅,隨后出現(xiàn)的幾起案子疯兼,更是在濱河造成了極大的恐慌,老刑警劉巖贫途,帶你破解...
    沈念sama閱讀 221,635評論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件吧彪,死亡現(xiàn)場離奇詭異,居然都是意外死亡丢早,警方通過查閱死者的電腦和手機姨裸,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,543評論 3 399
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來怨酝,“玉大人傀缩,你說我怎么就攤上這事≠炻担” “怎么了扑毡?”我有些...
    開封第一講書人閱讀 168,083評論 0 360
  • 文/不壞的土叔 我叫張陵,是天一觀的道長盛险。 經(jīng)常有香客問我瞄摊,道長勋又,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 59,640評論 1 296
  • 正文 為了忘掉前任换帜,我火速辦了婚禮楔壤,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘惯驼。我一直安慰自己蹲嚣,他們只是感情好,可當我...
    茶點故事閱讀 68,640評論 6 397
  • 文/花漫 我一把揭開白布祟牲。 她就那樣靜靜地躺著隙畜,像睡著了一般。 火紅的嫁衣襯著肌膚如雪说贝。 梳的紋絲不亂的頭發(fā)上议惰,一...
    開封第一講書人閱讀 52,262評論 1 308
  • 那天,我揣著相機與錄音乡恕,去河邊找鬼言询。 笑死,一個胖子當著我的面吹牛傲宜,可吹牛的內(nèi)容都是我干的运杭。 我是一名探鬼主播,決...
    沈念sama閱讀 40,833評論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼函卒,長吁一口氣:“原來是場噩夢啊……” “哼辆憔!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起谆趾,我...
    開封第一講書人閱讀 39,736評論 0 276
  • 序言:老撾萬榮一對情侶失蹤躁愿,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后沪蓬,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體彤钟,經(jīng)...
    沈念sama閱讀 46,280評論 1 319
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,369評論 3 340
  • 正文 我和宋清朗相戀三年跷叉,在試婚紗的時候發(fā)現(xiàn)自己被綠了逸雹。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 40,503評論 1 352
  • 序言:一個原本活蹦亂跳的男人離奇死亡云挟,死狀恐怖梆砸,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情园欣,我是刑警寧澤帖世,帶...
    沈念sama閱讀 36,185評論 5 350
  • 正文 年R本政府宣布,位于F島的核電站沸枯,受9級特大地震影響日矫,放射性物質(zhì)發(fā)生泄漏赂弓。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,870評論 3 333
  • 文/蒙蒙 一哪轿、第九天 我趴在偏房一處隱蔽的房頂上張望盈魁。 院中可真熱鬧,春花似錦窃诉、人聲如沸杨耙。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,340評論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽旱眯。三九已至程奠,卻和暖如春哨颂,著一層夾襖步出監(jiān)牢的瞬間桑寨,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,460評論 1 272
  • 我被黑心中介騙來泰國打工脖旱, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人介蛉。 一個月前我還...
    沈念sama閱讀 48,909評論 3 376
  • 正文 我出身青樓萌庆,卻偏偏與公主長得像,于是被迫代替她去往敵國和親币旧。 傳聞我的和親對象是個殘疾皇子践险,可洞房花燭夜當晚...
    茶點故事閱讀 45,512評論 2 359

推薦閱讀更多精彩內(nèi)容

  • 1 背景 不能只分析源碼呀,分析的同時也要整理歸納基礎(chǔ)知識吹菱,剛好有人微博私信讓全面說說Android的動畫巍虫,所以今...
    未聞椛洺閱讀 2,716評論 0 10
  • 作者:鄒峰立,微博:zrunker鳍刷,郵箱:zrunker@yahoo.com占遥,微信公眾號:書客創(chuàng)作,個人平臺:ww...
    吾非言閱讀 674評論 0 0
  • 2017.11.12输瓜,上海國際馬拉松瓦胎,也是我的首馬日,成績4:32:51尤揣。對于這個成績搔啊,我簡直太滿意了,要知道北戏,我...
    蕭笛L閱讀 162評論 0 0
  • 森林逃離夜幕的魔掌负芋, 天空慢慢變透明 清風吹來了清新的空氣,也吹走了心中的惆悵 太陽慢騰騰地竄動起來嗜愈,遠處長街亮起...
    探路人閱讀 341評論 2 2
  • 別等 那成熟的果實向你落去 落下的也已失去了美味 別等 那一瓣雪花向你飄去 飄來后 也已不再透明 別等 那一束溫和...
    小寇同學(xué)閱讀 106評論 2 2