Android中的動(dòng)畫(huà):
十載專(zhuān)業(yè)網(wǎng)站建設(shè)公司歷程,堅(jiān)持以創(chuàng)新為先導(dǎo)的網(wǎng)站服務(wù),服務(wù)超過(guò)數(shù)千家企業(yè)及個(gè)人,涉及網(wǎng)站設(shè)計(jì)、app開(kāi)發(fā)定制、微信開(kāi)發(fā)、平面設(shè)計(jì)、互聯(lián)網(wǎng)整合營(yíng)銷(xiāo)等多個(gè)領(lǐng)域。在不同行業(yè)和領(lǐng)域給人們的工作和生活帶來(lái)美好變化。
一、分類(lèi):TweenAnimation(補(bǔ)間動(dòng)畫(huà))和FrameAnimation(幀動(dòng)畫(huà))。
TweenAnimation,通過(guò)對(duì)圖像不斷做變換產(chǎn)生動(dòng)畫(huà)效果,是一種漸變效果;
AlphaAnimation:透明度漸變;
ScaleAnimation:尺寸縮放;
TranslateAnimation:移動(dòng)
RotateAnimation:旋轉(zhuǎn)
FrameAnimation:順序播放事先做好的圖像是一種轉(zhuǎn)換動(dòng)畫(huà);
二、屬性簡(jiǎn)介:
TweenAnimation共同屬性:
android:duration [long] :動(dòng)畫(huà)持續(xù)的時(shí)間;
android:fillAfter [boolean]:視圖停在動(dòng)畫(huà)結(jié)束的位置,但是真正的位置仍然是布局中給定位置;
android:fillBefore[boolean]:視圖停在動(dòng)畫(huà)開(kāi)始的位置;
android:interpolator :指定一個(gè)動(dòng)畫(huà)的插入器,常用的插入器有:
accelerater_decelerate_interpolator:加速-減速 動(dòng)畫(huà)插入器
accelerater_interpolator:加速動(dòng)畫(huà)插入器;
deceleratr_interpolator:減速動(dòng)畫(huà)插入器;
android:repeatCount[int]:動(dòng)畫(huà)重復(fù)次數(shù),-1表示無(wú)限循環(huán);
android:repeatMode[int]:定義動(dòng)畫(huà)重復(fù)的行為,1,從起點(diǎn)重新開(kāi)始;2,從結(jié)束位置開(kāi)始相反執(zhí)行;
android:startOffset[long]:動(dòng)畫(huà)之間的時(shí)間間隔,從上次動(dòng)畫(huà)停多少時(shí)間開(kāi)始執(zhí)行下個(gè)動(dòng)畫(huà);
android:zAdjustment[int]:定義動(dòng)畫(huà)的Z order的改變,0:保持Z Order不變;1:保持在最上層;-1保持在最下層;(????待驗(yàn)證)
1.1 AlphaAnimation
xml中定義
代碼中定義:
//fromAlpha:開(kāi)始時(shí)的透明度,toAlpha:結(jié)束時(shí)的透明度 AlphaAnimation alpha = new AlphaAnimation(fromAlpha, toAlpha); //設(shè)置動(dòng)畫(huà)持續(xù)的時(shí)間 alpha.setDuration(durationMillis);
1.2 ScaleAnimation
xml
代碼中
ScaleAnimation scale = new ScaleAnimation(fromX, toX, fromY, toY);
1.3 TranslateAnimation
xml
代碼中:
TranslateAnimation anim = new TranslateAnimation(fromXDelta, toXDelta, fromYDelta, toYDelta)
1.4 RotateAnimation
xml
代碼:
ScaleAnimation anim = new ScaleAnimation(fromX, toX, fromY, toY)
2.xml定義動(dòng)畫(huà)在activity中的使用:
Animation animation = (Animation) AnimationUtils.loadAnimation(MainActivity.this, R.anim.animation);
3.插值器的使用
Interpolator對(duì)象 | 資源ID | 功能作用 |
---|---|---|
AccelerateDecelerateInterpolator | @android:anim/accelerate_decelerate_interpolator | 先加速再減速 |
AccelerateInterpolator | @android:anim/accelerate_interpolator | 加速 |
AnticipateInterpolator | @android:anim/anticipate_interpolator | 先回退一小步然后加速前進(jìn) |
AnticipateOvershootInterpolator | @android:anim/anticipate_overshoot_interpolator | 在上一個(gè)基礎(chǔ)上超出終點(diǎn)一小步再回到終點(diǎn) |
BounceInterpolator | @android:anim/bounce_interpolator | 最后階段彈球效果 |
CycleInterpolator | @android:anim/cycle_interpolator | 周期運(yùn)動(dòng) |
DecelerateInterpolator | @android:anim/decelerate_interpolator | 減速 |
LinearInterpolator | @android:anim/linear_interpolator | 勻速 |
OvershootInterpolator | @android:anim/overshoot_interpolator | 快速到達(dá)終點(diǎn)并超出一小步最后回到終點(diǎn) |
4.FrameAnimation:幀動(dòng)畫(huà)
添加圖片,按照添加圖片的順序播放;
AnimationDrawable anima = new AnimationDrawable(); anima.addFrame(drawable1, duration1); anima.addFrame(drawable2, duration2); anima.addFrame(drawable3, duration3); anima.addFrame(drawable4, duration4); view.setBackgroudDrawable(anima);