ViewAnimation

一配椭、動(dòng)畫效果

(1)AlphaAnimation

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
    <alpha
        android:duration="3000"
        android:fromAlpha="1.0"
        android:toAlpha="0.2" />
</set>
  • duration:設(shè)置當(dāng)前動(dòng)畫時(shí)長(zhǎng)
  • fromAlpha:設(shè)置透明度的初始值
  • toAlpha :設(shè)置透明度的結(jié)束值

(2)RotateAnimation

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
    <rotate
        android:duration="3000"
        android:fromDegrees="0"
        android:pivotX="50%"
        android:pivotY="50%"
        android:toDegrees="360" />
</set>
  • fromDegrees:旋轉(zhuǎn)初始的角度
  • toDegrees:旋轉(zhuǎn)結(jié)束的角度
  • pivotX: 旋轉(zhuǎn)中心點(diǎn)x坐標(biāo)
  • pivotY: 旋轉(zhuǎn)中心點(diǎn)y坐標(biāo)

(3)ScaleAnimation

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
    <scale
        android:duration="3000"
        android:fromXScale="1.0"
        android:fromYScale="1.0"
        android:toXScale="0.2"
        android:toYScale="0.2"
        android:pivotX="50%"
        android:pivotY="50%" />
</set>
  • fromXScale:水平方向縮放比例的初始值
  • fromYScale:豎直方向縮放比例的初始值
  • toXScale:水平方向縮放比例的結(jié)束值
  • toYScale:豎直方向縮放比例的結(jié)束值
  • pivotX:縮放中心點(diǎn)的x坐標(biāo)
  • pivotY:縮放中心點(diǎn)的y坐標(biāo)

(4)TranslateAnimation

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
    <translate
        android:duration="3000"
        android:fromXDelta="20%"
        android:fromYDelta="20%"
        android:toXDelta="100%"
        android:toYDelta="100%" />
</set>
  • fromXDelta:移動(dòng)起始點(diǎn)的x坐標(biāo)
  • fromYDelta:移動(dòng)起始點(diǎn)的y坐標(biāo)
  • toXDelta:移動(dòng)結(jié)束點(diǎn)的x坐標(biāo)
  • toYDelta:移動(dòng)結(jié)束點(diǎn)的y坐標(biāo)

(5)組合動(dòng)畫

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android"
    android:duration="4000"
    android:fillAfter="true"
    android:fillBefore="true"
    android:startOffset="1000">
    <alpha
        android:duration="3000"
        android:fromAlpha="1.0"
        android:repeatCount="infinite"
        android:repeatMode="reverse"
        android:toAlpha="0.2" />
    <rotate
        android:duration="3000"
        android:fromDegrees="0"
        android:pivotX="50%"
        android:pivotY="50%"
        android:repeatCount="infinite"
        android:repeatMode="reverse"
        android:toDegrees="360" />
    <scale
        android:duration="3000"
        android:fromXScale="1.0"
        android:fromYScale="1.0"
        android:repeatCount="infinite"
        android:repeatMode="reverse"
        android:toXScale="0.2"
        android:toYScale="0.2" />
    <translate
        android:duration="3000"
        android:fromXDelta="20%"
        android:fromYDelta="20%"
        android:repeatCount="infinite"
        android:repeatMode="reverse"
        android:toXDelta="100%"
        android:toYDelta="100%" />
</set>
  • fillAfter:視圖是否會(huì)停留在動(dòng)畫結(jié)束的狀態(tài)拴事,默認(rèn)為false
  • fillBefore:視圖是否會(huì)停留在動(dòng)畫開始的狀態(tài)况凉,默認(rèn)為true
  • startOffset:動(dòng)畫延遲開始時(shí)間

二、動(dòng)畫實(shí)現(xiàn)

(1)通過xml文件實(shí)現(xiàn)動(dòng)畫

  • 在res/anim文件下創(chuàng)建xml文件
  • 在代碼中通過引用xml文件實(shí)現(xiàn)動(dòng)畫效果
Animation loadAnimation = AnimationUtils.loadAnimation(this, R.anim.animation_translate);
loadAnimation.setFillAfter(true);
View.startAnimation(loadAnimation);
  • setDuration:動(dòng)畫的運(yùn)行時(shí)間
  • setFillAfter:動(dòng)畫結(jié)束時(shí)是否保持動(dòng)畫最后的狀態(tài)
  • setFillBefore:動(dòng)畫結(jié)束時(shí)是否保持動(dòng)畫最后的狀態(tài)
  • setInterpolator:設(shè)定插值器
  • setRepeatCount:重復(fù)次數(shù)
  • setRepeatMode:重復(fù)類型有兩個(gè)值胧奔,reverse表示倒序回放或衡,restart表示從頭播放
  • setStartOffset:調(diào)用start函數(shù)之后等待開始運(yùn)行的時(shí)間

(2)通過代碼實(shí)現(xiàn)動(dòng)畫

AnimationSet setAnimation = new AnimationSet(true);
// 設(shè)置組合動(dòng)畫的重復(fù)類型
setAnimation.setRepeatMode(Animation.RESTART);
//透明度
Animation alpha = new AlphaAnimation(1,0);
alpha.setDuration(3000);
//旋轉(zhuǎn)
Animation rotate = new RotateAnimation(0, 360, 
    Animation.RELATIVE_TO_SELF, 0.5f, 
    Animation.RELATIVE_TO_SELF, 0.5f);
rotate.setDuration(1000);
rotate.setRepeatMode(Animation.RESTART);
rotate.setRepeatCount(Animation.INFINITE);
//縮放
Animation scale = new ScaleAnimation(1, 0.5f, 1, 0.5f, 
    Animation.RELATIVE_TO_SELF, 0.5f, 
    Animation.RELATIVE_TO_SELF, 0.5f);
scale.setDuration(1000);
//平移動(dòng)畫
Animation translate = new TranslateAnimation(
    TranslateAnimation.RELATIVE_TO_PARENT, -0.5f, 
    TranslateAnimation.RELATIVE_TO_PARENT, 0.5f, 
    TranslateAnimation.RELATIVE_TO_SELF, 0, 
    TranslateAnimation.RELATIVE_TO_SELF, 0);
translate.setDuration(10000);
//設(shè)置到組合動(dòng)畫
setAnimation.addAnimation(alpha);
setAnimation.addAnimation(rotate);
setAnimation.addAnimation(translate);
setAnimation.addAnimation(scale1);
//添加到imageView中
imageView.startAnimation(setAnimation);
  • 補(bǔ)間動(dòng)畫只能夠作用在視圖View上芙沥,無法對(duì)非View的對(duì)象進(jìn)行動(dòng)畫操作。
  • 補(bǔ)間動(dòng)畫只是改變了View的視覺效果京办,而不會(huì)真正去改變View的屬性掀序。
  • 補(bǔ)間動(dòng)畫只能實(shí)現(xiàn)平移、旋轉(zhuǎn)惭婿、縮放 & 透明度這些簡(jiǎn)單的動(dòng)畫需求不恭。
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市财饥,隨后出現(xiàn)的幾起案子换吧,更是在濱河造成了極大的恐慌,老刑警劉巖钥星,帶你破解...
    沈念sama閱讀 221,576評(píng)論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件沾瓦,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)贯莺,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,515評(píng)論 3 399
  • 文/潘曉璐 我一進(jìn)店門风喇,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人缕探,你說我怎么就攤上這事魂莫。” “怎么了爹耗?”我有些...
    開封第一講書人閱讀 168,017評(píng)論 0 360
  • 文/不壞的土叔 我叫張陵耙考,是天一觀的道長(zhǎng)。 經(jīng)常有香客問我鲸沮,道長(zhǎng)琳骡,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 59,626評(píng)論 1 296
  • 正文 為了忘掉前任讼溺,我火速辦了婚禮楣号,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘怒坯。我一直安慰自己炫狱,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,625評(píng)論 6 397
  • 文/花漫 我一把揭開白布剔猿。 她就那樣靜靜地躺著视译,像睡著了一般。 火紅的嫁衣襯著肌膚如雪归敬。 梳的紋絲不亂的頭發(fā)上酷含,一...
    開封第一講書人閱讀 52,255評(píng)論 1 308
  • 那天,我揣著相機(jī)與錄音汪茧,去河邊找鬼椅亚。 笑死,一個(gè)胖子當(dāng)著我的面吹牛舱污,可吹牛的內(nèi)容都是我干的呀舔。 我是一名探鬼主播,決...
    沈念sama閱讀 40,825評(píng)論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼扩灯,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼媚赖!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起珠插,我...
    開封第一講書人閱讀 39,729評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤惧磺,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后捻撑,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體豺妓,經(jīng)...
    沈念sama閱讀 46,271評(píng)論 1 320
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡惜互,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,363評(píng)論 3 340
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了琳拭。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片训堆。...
    茶點(diǎn)故事閱讀 40,498評(píng)論 1 352
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖白嘁,靈堂內(nèi)的尸體忽然破棺而出坑鱼,到底是詐尸還是另有隱情,我是刑警寧澤絮缅,帶...
    沈念sama閱讀 36,183評(píng)論 5 350
  • 正文 年R本政府宣布鲁沥,位于F島的核電站,受9級(jí)特大地震影響耕魄,放射性物質(zhì)發(fā)生泄漏画恰。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,867評(píng)論 3 333
  • 文/蒙蒙 一吸奴、第九天 我趴在偏房一處隱蔽的房頂上張望允扇。 院中可真熱鬧,春花似錦则奥、人聲如沸考润。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,338評(píng)論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽糊治。三九已至,卻和暖如春罚舱,著一層夾襖步出監(jiān)牢的瞬間井辜,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,458評(píng)論 1 272
  • 我被黑心中介騙來泰國(guó)打工管闷, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留抑胎,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 48,906評(píng)論 3 376
  • 正文 我出身青樓渐北,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親铭拧。 傳聞我的和親對(duì)象是個(gè)殘疾皇子赃蛛,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,507評(píng)論 2 359

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

  • Android 自定義View的各種姿勢(shì)1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 172,283評(píng)論 25 707
  • ¥開啟¥ 【iAPP實(shí)現(xiàn)進(jìn)入界面執(zhí)行逐一顯】 〖2017-08-25 15:22:14〗 《//首先開一個(gè)線程,因...
    小菜c閱讀 6,444評(píng)論 0 17
  • 發(fā)現(xiàn) 關(guān)注 消息 iOS 第三方庫搀菩、插件呕臂、知名博客總結(jié) 作者大灰狼的小綿羊哥哥關(guān)注 2017.06.26 09:4...
    肇東周閱讀 12,119評(píng)論 4 61
  • Arm處理器,因其低功耗和小尺寸而聞名肪跋,幾乎所有的手機(jī)處理器都基于arm歧蒋,其在嵌入式系統(tǒng)中的應(yīng)用非常廣泛,它的性能...
    meimeiDa閱讀 592評(píng)論 0 1
  • 定義 逆變與協(xié)變用來描述類型轉(zhuǎn)換(type transformation)后的繼承關(guān)系,其定義:如果A谜洽、B表示類型...
    開發(fā)者小王閱讀 25,671評(píng)論 4 61