自定義動(dòng)畫(huà)

動(dòng)畫(huà)分類(lèi):

view動(dòng)畫(huà)(平移携悯,旋轉(zhuǎn)开呐,縮放,透明度):xml和代碼均可實(shí)現(xiàn)搜骡,建議用xml,因?yàn)閤ml 可讀性高點(diǎn)

幀動(dòng)畫(huà): 算view動(dòng)畫(huà)的一種,是由一組圖片依次切換達(dá)到動(dòng)畫(huà)的效果佑女,圖片太多時(shí)记靡,容易o(hù)om

屬性動(dòng)畫(huà):改變動(dòng)畫(huà)屬性來(lái)完成動(dòng)畫(huà),api11之后才有团驱,可用兼容包在低版本實(shí)現(xiàn)摸吠;

插值器:

經(jīng)常看到interpolator這個(gè)屬性嚎花,表示動(dòng)畫(huà)集合所采用的插值器寸痢,插值器影響的是動(dòng)畫(huà)的速度,比如非勻速動(dòng)畫(huà)需要通過(guò)interpolator來(lái)控制動(dòng)畫(huà)的播放速度紊选。這個(gè)屬性可不指定直接用默認(rèn)的---加速減速插值器啼止。

shareInterpolator屬性表示集合中的動(dòng)畫(huà)是否和集合共享同一個(gè)插值器道逗。

自定義View動(dòng)畫(huà)(實(shí)際開(kāi)發(fā)中很少用到。一般會(huì)借助Camera類(lèi))

view動(dòng)畫(huà)可以直接在xml上指定献烦,可以是一種類(lèi)型動(dòng)畫(huà)滓窍,也可以是多種類(lèi)型的動(dòng)畫(huà)集合,除了系統(tǒng)提供的四種View動(dòng)畫(huà)巩那,我們也可以自定義View動(dòng)畫(huà)吏夯;

自定義View動(dòng)畫(huà)只需要集成Animation這個(gè)抽象類(lèi)重寫(xiě)initialize和applyTransformation兩個(gè)方法即横,initialize中做一些初始化工作噪生,applyTransformation中進(jìn)行相應(yīng)的矩陣變換即可。(矩陣方面是數(shù)學(xué)上的概念东囚,太過(guò)復(fù)雜的矩陣變換會(huì)算起來(lái)難)

幀動(dòng)畫(huà)

幀動(dòng)畫(huà)使用簡(jiǎn)單跺嗽,但是容易引起oom,所以在使用幀動(dòng)畫(huà)的時(shí)候贏盡量避免使用過(guò)多尺寸較大的圖片舔庶。

LayoutAnimation

作用于ViewGroup抛蚁,這樣它的子元素出場(chǎng)時(shí)都會(huì)具有這樣的動(dòng)畫(huà)效果。如listView中每個(gè)item都要以一定的動(dòng)畫(huà)的形式出現(xiàn)惕橙,使用的就是layoutAnimation.

兩個(gè)Activity切換用的overridePendingTransition必須位于startActivity/finish的后面瞧甩,否則不起作用。

屬性動(dòng)畫(huà)

分為:ValueAnimator.objectAnimator,AnimatorSet弥鹦;在一個(gè)時(shí)間間隔內(nèi)完成對(duì)象從一個(gè)屬性值到另一個(gè)屬性值的改變肚逸;

TimeInterpolator---時(shí)間插值器,根據(jù)時(shí)間流逝的百分比計(jì)算當(dāng)前屬性值改變的百分比彬坏,

TypeEvaluator---估值器朦促,根據(jù)當(dāng)前的屬性改變的百分比算出經(jīng)過(guò)改變后當(dāng)前的屬性值。

在更改View屬性時(shí)栓始,發(fā)現(xiàn)很多屬性并不能直接set务冕,因?yàn)闆](méi)有提供接口,這時(shí)候官方文檔有解決方法:用一個(gè)類(lèi)來(lái)包裝原始對(duì)象幻赚,間接為其提供get和set 方法


例如設(shè)置Button的寬度:

private void performAnimate() {?

ViewWrapper wrapper = new ViewWrapper(mButton);

ObjectAnimator.ofInt(wrapper, "width", 500).setDuration(5000).start();

}

@Override

onClick(View v) {if (v == mButton) { performAnimate();}}

private static class ViewWrapper {

private View mTarget;

public ViewWrapper(View target){mTarget = target;}

public int getWidth(){return mTarget.getLayoutParams().width}

public void setWidth(int width) {mTarget.getLayoutParams().width = width; mTarget.requestLayout();}

使用動(dòng)畫(huà)的注意點(diǎn):

1.oom禀忆, 幀動(dòng)畫(huà)

2.內(nèi)存泄漏:屬性動(dòng)畫(huà)有一類(lèi)無(wú)限循環(huán)的動(dòng)畫(huà),在Activity退出時(shí)及時(shí)停止

3.View動(dòng)畫(huà)是對(duì)View的影像做動(dòng)畫(huà)落恼,并不是真正的改變View的狀態(tài)箩退,因此有時(shí)候會(huì)出現(xiàn)動(dòng)畫(huà)完成后VIew無(wú)法隱藏的問(wèn)題,即setVisibility(GOnd)不管用佳谦,這個(gè)時(shí)候要clearAnimation清除View動(dòng)畫(huà)即可解決此問(wèn)題

4.不要使用px. 因?yàn)楦鱾€(gè)設(shè)備px會(huì)有不同的效果

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末戴涝,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌啥刻,老刑警劉巖奸鸯,帶你破解...
    沈念sama閱讀 211,743評(píng)論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異郑什,居然都是意外死亡府喳,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,296評(píng)論 3 385
  • 文/潘曉璐 我一進(jìn)店門(mén)蘑拯,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)钝满,“玉大人,你說(shuō)我怎么就攤上這事申窘⊥溲粒” “怎么了?”我有些...
    開(kāi)封第一講書(shū)人閱讀 157,285評(píng)論 0 348
  • 文/不壞的土叔 我叫張陵剃法,是天一觀的道長(zhǎng)碎捺。 經(jīng)常有香客問(wèn)我,道長(zhǎng)贷洲,這世上最難降的妖魔是什么收厨? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 56,485評(píng)論 1 283
  • 正文 為了忘掉前任,我火速辦了婚禮优构,結(jié)果婚禮上诵叁,老公的妹妹穿的比我還像新娘。我一直安慰自己钦椭,他們只是感情好拧额,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,581評(píng)論 6 386
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著彪腔,像睡著了一般侥锦。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上德挣,一...
    開(kāi)封第一講書(shū)人閱讀 49,821評(píng)論 1 290
  • 那天恭垦,我揣著相機(jī)與錄音,去河邊找鬼格嗅。 笑死番挺,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的吗浩。 我是一名探鬼主播建芙,決...
    沈念sama閱讀 38,960評(píng)論 3 408
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼没隘,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼懂扼!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書(shū)人閱讀 37,719評(píng)論 0 266
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤阀湿,失蹤者是張志新(化名)和其女友劉穎赶熟,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體陷嘴,經(jīng)...
    沈念sama閱讀 44,186評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡映砖,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,516評(píng)論 2 327
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了灾挨。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片邑退。...
    茶點(diǎn)故事閱讀 38,650評(píng)論 1 340
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖劳澄,靈堂內(nèi)的尸體忽然破棺而出地技,到底是詐尸還是另有隱情,我是刑警寧澤秒拔,帶...
    沈念sama閱讀 34,329評(píng)論 4 330
  • 正文 年R本政府宣布莫矗,位于F島的核電站,受9級(jí)特大地震影響砂缩,放射性物質(zhì)發(fā)生泄漏作谚。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,936評(píng)論 3 313
  • 文/蒙蒙 一庵芭、第九天 我趴在偏房一處隱蔽的房頂上張望妹懒。 院中可真熱鬧,春花似錦喳挑、人聲如沸彬伦。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 30,757評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)单绑。三九已至,卻和暖如春曹宴,著一層夾襖步出監(jiān)牢的瞬間搂橙,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 31,991評(píng)論 1 266
  • 我被黑心中介騙來(lái)泰國(guó)打工笛坦, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留区转,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 46,370評(píng)論 2 360
  • 正文 我出身青樓版扩,卻偏偏與公主長(zhǎng)得像废离,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子礁芦,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,527評(píng)論 2 349

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