Android——Animation

Android中的動畫:

十載專業(yè)網(wǎng)站建設(shè)公司歷程,堅持以創(chuàng)新為先導(dǎo)的網(wǎng)站服務(wù),服務(wù)超過數(shù)千家企業(yè)及個人,涉及網(wǎng)站設(shè)計、app開發(fā)定制、微信開發(fā)、平面設(shè)計、互聯(lián)網(wǎng)整合營銷等多個領(lǐng)域。在不同行業(yè)和領(lǐng)域給人們的工作和生活帶來美好變化。

一、分類:TweenAnimation(補(bǔ)間動畫)和FrameAnimation(幀動畫)。

  1. TweenAnimation,通過對圖像不斷做變換產(chǎn)生動畫效果,是一種漸變效果;

    AlphaAnimation:透明度漸變;

    ScaleAnimation:尺寸縮放;

    TranslateAnimation:移動

    RotateAnimation:旋轉(zhuǎn)

  2. FrameAnimation:順序播放事先做好的圖像是一種轉(zhuǎn)換動畫;

二、屬性簡介:

  1. TweenAnimation共同屬性:

android:duration [long] :動畫持續(xù)的時間;

android:fillAfter [boolean]:視圖停在動畫結(jié)束的位置,但是真正的位置仍然是布局中給定位置;

android:fillBefore[boolean]:視圖停在動畫開始的位置;

android:interpolator :指定一個動畫的插入器,常用的插入器有:

    accelerater_decelerate_interpolator:加速-減速 動畫插入器

    accelerater_interpolator:加速動畫插入器;

    deceleratr_interpolator:減速動畫插入器;

android:repeatCount[int]:動畫重復(fù)次數(shù),-1表示無限循環(huán);

android:repeatMode[int]:定義動畫重復(fù)的行為,1,從起點(diǎn)重新開始;2,從結(jié)束位置開始相反執(zhí)行;

android:startOffset[long]:動畫之間的時間間隔,從上次動畫停多少時間開始執(zhí)行下個動畫;

android:zAdjustment[int]:定義動畫的Z order的改變,0:保持Z Order不變;1:保持在最上層;-1保持在最下層;(????待驗(yàn)證)

1.1 AlphaAnimation

xml中定義

<!-- 	<alpha android:fromAlpha="" 開始時的透明度,0.0-1.0 -->
<!-- 	    android:toAlpha="" 結(jié)束時的透明度 0.0-1.0 -->
<!-- 	    android:duration="" 動畫持續(xù)的時間 /> -->

代碼中定義:

//fromAlpha:開始時的透明度,toAlpha:結(jié)束時的透明度
		AlphaAnimation alpha = new AlphaAnimation(fromAlpha, toAlpha);
		//設(shè)置動畫持續(xù)的時間
		alpha.setDuration(durationMillis);

1.2 ScaleAnimation

xml

<!-- <scale  -->
<!--     android:fromXScale="" 動畫起始時X坐標(biāo)上的伸縮尺寸-->
<!--     android:toXScale="" 動畫結(jié)束時X坐標(biāo)上的伸縮尺寸-->
<!--     android:fromYScale="" 動畫起始時Y軸上的伸縮尺寸-->
<!--     android:toYScale="" 動畫結(jié)束時Y軸上的伸縮尺寸-->
<!--     android:pivotX="" 動畫相對于物件的X坐標(biāo)的開始位置-->
<!--     android:pivotY="" 動畫相對與物件Y坐標(biāo)的開始位置-->
<!--     /> -->

代碼中

ScaleAnimation scale = new ScaleAnimation(fromX, toX, fromY, toY);

1.3 TranslateAnimation

xml

    <translate
        android:fromXDelta="0%" //x軸起始位置
        android:pivotX="0%" //動畫相對于物件X坐標(biāo)的開始位置
        android:pivotY="0%"http://動畫相對于物件Y坐標(biāo)的開始位置
        android:toXDelta="30%" //x軸的結(jié)束位置
        android:fromYDelta="0%" //y軸起始位置
        android:toYDelta="0%" //y軸結(jié)束位置
        android:duration="10000"/>

代碼中:

TranslateAnimation anim = new TranslateAnimation(fromXDelta, toXDelta, fromYDelta, toYDelta)

1.4 RotateAnimation

xml

    <!-- <rotate -->
    <!-- android:fromDegrees="" 動畫起始時物件的角度 -->
    <!-- android:toDegrees="" 動畫結(jié)束時物件旋轉(zhuǎn)的角度 -->
    <!-- 角度為負(fù)表示逆時針旋轉(zhuǎn),角度為正表示順時針旋轉(zhuǎn) -->
    <!-- android:pivotX="" 動畫相對于物件X坐標(biāo)的開始位置 -->
    <!-- android:pivotY="" 動畫相對與物件Y坐標(biāo)的開始位置 -->
    <!-- android:duration="" 動畫運(yùn)行時間/> -->

代碼:

		ScaleAnimation anim = new ScaleAnimation(fromX, toX, fromY, toY)

2.xml定義動畫在activity中的使用:

Animation animation = (Animation) AnimationUtils.loadAnimation(MainActivity.this, R.anim.animation);

3.插值器的使用

Interpolator對象資源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在上一個基礎(chǔ)上超出終點(diǎn)一小步再回到終點(diǎn)
BounceInterpolator@android:anim/bounce_interpolator最后階段彈球效果
CycleInterpolator@android:anim/cycle_interpolator周期運(yùn)動
DecelerateInterpolator@android:anim/decelerate_interpolator減速
LinearInterpolator@android:anim/linear_interpolator勻速
OvershootInterpolator@android:anim/overshoot_interpolator快速到達(dá)終點(diǎn)并超出一小步最后回到終點(diǎn)

4.FrameAnimation:幀動畫

添加圖片,按照添加圖片的順序播放;

		AnimationDrawable anima = new AnimationDrawable();
		anima.addFrame(drawable1, duration1);
		anima.addFrame(drawable2, duration2);
		anima.addFrame(drawable3, duration3);
		anima.addFrame(drawable4, duration4);
		view.setBackgroudDrawable(anima);

本文標(biāo)題:Android——Animation
文章地址:http://muchs.cn/article28/jpidjp.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站設(shè)計公司、服務(wù)器托管網(wǎng)站內(nèi)鏈、網(wǎng)站策劃網(wǎng)站建設(shè)、ChatGPT

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

網(wǎng)站優(yōu)化排名