一瘟判、逐幀動(dòng)畫
將一系列不斷變化的圖片憔四,按照指定的順序播放眯漩。
1.在drawable文件夾下創(chuàng)建根節(jié)點(diǎn)為<animation-list>標(biāo)簽來自定動(dòng)畫
2.使用item自定每一幀動(dòng)畫览闰。
oneShot:是否重復(fù)
druation:持續(xù)時(shí)間
使用代碼:
AnimationDrawable animDrawable=new AnimationDrawable();
for(int i=0;i<5;i++){
int id=getResources().getIdentifier("ic_launcher"+i,"drawable",getPackName());
animDrawable.addFrame(getResources().getDrawable(id),120);
}
imageview.setBackgroundDrawable(animDrawable);
animDrawable.setOneShot(false);
animDrawable.start();
animDrawable.stop();
補(bǔ)間動(dòng)畫
開發(fā)者定義開始和結(jié)束兩幀,中間的過程由程序通過插值器來實(shí)現(xiàn)平滑的過度動(dòng)畫问拘。主要包括四種基本效果遍略。透明度,旋轉(zhuǎn)场梆,位移墅冷,縮放纯路。
//網(wǎng)上很多例子
屬性動(dòng)畫Animator
屬性動(dòng)畫可以直接改變對象的屬性或油,一個(gè)完整的屬性動(dòng)畫由兩部分主要功能
1.計(jì)算動(dòng)畫各幀的相關(guān)屬性值
2.將這些屬性值給指定的對象
1.Evaluator 用來控制屬性動(dòng)畫如何計(jì)算屬性值
2.AnimatorSet用來組合多個(gè)屬性動(dòng)畫一起播放
3.ValueAnimator
它實(shí)現(xiàn)了屬性動(dòng)畫的第一個(gè)功能,計(jì)算屬性值驰唬。
ValueAnimator animator=ValueAnimator.ofObject(..);
//作用于哪里顶岸,需要實(shí)現(xiàn)addUpdateListener接口,在它的里面實(shí)現(xiàn)作用于view的邏輯
animator.addUpdateListene(....)
ObjectAnimator它實(shí)現(xiàn)了屬性動(dòng)畫的兩個(gè)主要功能
ObjectAnimator objectAnimator=ObjectAnimator.ofFloat("作用于哪里","對象的屬性名"叫编,值)辖佣;
一定要保證該對象具有對象的屬性名稱相對應(yīng)的set方法。
ObjectAnimator objectAnimator=ObjectAnimator.ofFloat(mProgress,"progress"搓逾,20)卷谈;
//mProgress對象具有progress為參數(shù)的set方法
setProgress(float progress)