為了更好的用戶體驗(yàn)抑钟,需要學(xué)習(xí)更好的交互方式。
平時(shí)動(dòng)畫(huà)用得挺少的野哭,書(shū)都用時(shí)方恨少啊在塔,所以還是復(fù)習(xí)鞏固一下吧。
動(dòng)畫(huà)分類
android的動(dòng)畫(huà)分為幀動(dòng)畫(huà)拨黔,補(bǔ)間動(dòng)畫(huà)蛔溃,屬性動(dòng)畫(huà)。
幀動(dòng)畫(huà)(Frame Animation)
主要就是利用一堆圖片逐幀播放。
補(bǔ)間動(dòng)畫(huà)(Tween Animation)
常用的有 AlphaAnimation贺待,RotateAnimation徽曲,ScaleAnimation,TranslateAnimation 這4個(gè)動(dòng)畫(huà) 其中AnimationSet的作用可以組合這幾種動(dòng)畫(huà)麸塞,是有順序的播放秃臣,還是可以同時(shí)播放這都可以由AnimationSet來(lái)管理設(shè)置。
屬性動(dòng)畫(huà)(Property Animation)?
默認(rèn)情況下哪工,插值器使用的是AccelerateDecelerateInterpolator奥此,是一個(gè)加速進(jìn)入.減速退出的一個(gè)動(dòng)畫(huà)過(guò)程,當(dāng)然也可以自己通過(guò)使用setInterpolator(TimeInterpolator)?設(shè)置自己的插值器雁比。 主要作用是通過(guò)設(shè)置獲取設(shè)置的屬性值稚虎,然后處理對(duì)應(yīng)的動(dòng)畫(huà)。
官網(wǎng)例子偎捎,下面解釋標(biāo)錯(cuò)了蠢终,之前沒(méi)注意 看錯(cuò)了,不是TextView的值從0-100顯示茴她,應(yīng)該是移動(dòng)x的距離寻拂,移動(dòng)范圍是x軸從0-100
繼承自ValueAnimator ?
?這是一個(gè)接口,可以實(shí)現(xiàn)自己的TypeEvaluator丈牢,在可以通過(guò)下圖中標(biāo)記的參數(shù)兜喻,返回任意你想返回的數(shù)據(jù),比如ValueAnimation的OfFloat方法就是傳入float參數(shù)赡麦,然后getAnimationValue的時(shí)候獲得的就是float類型的一個(gè)對(duì)象,可以通過(guò)實(shí)現(xiàn)自己的TypeEvaluator然后返回自己想要的對(duì)象帕识。
關(guān)于如何使用 詳見(jiàn)?Using a TypeEvaluator ?(我也還沒(méi)用過(guò)泛粹,不過(guò)后面回去學(xué)習(xí),然后記錄下來(lái) ?^_^)
總結(jié)
總結(jié)出來(lái) 動(dòng)畫(huà)分類可分為 幀動(dòng)畫(huà)肮疗,屬性動(dòng)畫(huà)晶姊,補(bǔ)間動(dòng)畫(huà)
幀動(dòng)畫(huà),圖片一張一張播放
補(bǔ)間動(dòng)畫(huà)伪货,常用的有四種们衙,可以用AnimationSet組合幾種不同的動(dòng)畫(huà)
屬性動(dòng)畫(huà),更高級(jí)的一種碱呼,利用View對(duì)象的屬性來(lái)進(jìn)行變化蒙挑。
注意:
補(bǔ)間動(dòng)畫(huà)移動(dòng)以后,原來(lái)的點(diǎn)擊事件仍然在原來(lái)的地方愚臀,屬性動(dòng)畫(huà)如果移動(dòng)以后忆蚀,點(diǎn)擊事件在動(dòng)畫(huà)結(jié)束顯示的地方這點(diǎn)是有區(qū)別的