當前位置:首頁 > 芯聞號 > 充電吧
[導(dǎo)讀]補間動畫(Tween Animation)補間動畫有以下四種Alpha透明度動畫Scale尺寸縮放動畫Translate位置移動動畫Rotate旋轉(zhuǎn)動畫補間動畫的共同屬性Duration:動畫持續(xù)時間

補間動畫(Tween Animation)

補間動畫有以下四種

Alpha透明度動畫

Scale尺寸縮放動畫

Translate位置移動動畫

Rotate旋轉(zhuǎn)動畫

補間動畫的共同屬性

Duration:動畫持續(xù)時間(單位:毫秒)

fillAfter:設(shè)置為true,動畫轉(zhuǎn)化在動畫結(jié)束后被應(yīng)用

interpolator:動畫插入器(加速、減速插入器)

repeatCount:動畫重復(fù)次數(shù)

repeatMode:順序重復(fù)/倒序重復(fù)

startOffset:動畫之間的時間間隔(應(yīng)用于組合動畫)

動畫實現(xiàn)方式

配置文件(/res/anim)——alpha、scale、translate、rotate (更簡單)

Java代碼實現(xiàn)——AlphaAnimation、ScaleAnimation、TranslateAnimation、RotateAnimation

(更靈活)

例如

用Java代碼去創(chuàng)建

//創(chuàng)建Alpha動畫(透明度為10%-100%)

Animation alpha = new AlphaAnimation(0.1f,1.0f);

//設(shè)置動畫時間為5秒

alpha.setDuration(5000);

//開始播放

img.startAnimation(alpha);

加載配置文件

Animation scale = AnimationUtils.loadAnimation(context, R.anim.scale_anim);

//開始動畫

img.startAnimation(scale);

AlphaAnimation

fromAlpha動畫起始時的透明度 (1.0表示完全不透明)

toAlpha動畫終止時的透明度 (0.0表示完全透明)

ScaleAnimation

fromX,toX分別是起始和結(jié)束時x坐標上的伸縮尺寸

fromY,toY分別是起始和結(jié)束時y坐標上的伸縮尺寸

pivotX,pivotY分別為伸縮動畫相對于x,y軸開始位置

Translate

fromXDelta,fromYDelta分別是起始的X,Y的坐標

toXDelta,toYDelta分別是結(jié)束時X,Y的坐標

RotateAnimation

fromDegrees

toDegrees

pivotX,pivotY分別為旋轉(zhuǎn)動畫相對于x,y的坐標開始位置

動畫監(jiān)聽器

AnimationListener

幀動畫(Frame Animation)

概念

逐幀動畫是一種常見的動畫形式(Frame By Frame),其原理是在“連續(xù)的關(guān)鍵幀”中分解動畫動作,也就是在時間軸的每幀上逐幀繪制不同的內(nèi)容,使其連續(xù)播放而成動畫。

幀動畫實現(xiàn)

使用加載配置文件

將圖片資源拷貝到drawable資源目錄中

在drawable目錄中創(chuàng)建幀動畫配置文件,在該文件中配置動畫所需圖片,以及每個圖片停留時間。


<item< p="">

android:drawable="幀圖片的資源id"

android:duration="播放該幀的時間"/>

<item< p="">

android:drawable="幀圖片的資源id"

android:duration="播放該幀的時間"/>


//載入xml逐幀動畫資源

imageView.setImageResource(R.drawable.btn_animation);

aniDrawable = (AnimationDrawable) imageView.getDrawable();

//播放動畫

aniDrawable.setOneShot(true);

aniDrawable.start();

//停止動畫

//aniDrawable.stop();

//檢查動畫是否正在播放

//aniDrawable.isRunning();

使用Java代碼創(chuàng)建

//創(chuàng)建動畫對象

AnimationDrawable aniDrawable = new AnimationDrawable();

//設(shè)置每一幀的幀圖片,每一幀播放時間

aniDrawable.addFrame(this.getResources().getDrawable(R.drawable.inc_btn_emphasize_normal), 100);

aniDrawable.addFrame(this.getResources().getDrawable(R.drawable.inc_btn_emphasize_pressed), 100);

aniDrawable.addFrame(this.getResources().getDrawable(R.drawable.inc_btn_normal), 100);

aniDrawable.addFrame(this.getResources().getDrawable(R.drawable.inc_btn_pressed), 100);

imageView.setImageDrawable(aniDrawable);

練習(xí)

制作不會說話的湯姆貓

屬性動畫(Property Animation)

概念

andorid3.0引入。屬性動畫改變對象的一個field值實現(xiàn)動畫。指定你想要的屬性,多長時間,動畫的值就可以實現(xiàn)了。

Animation的局限性

一個屬性動畫的實現(xiàn)

//參數(shù):

//動畫作用目標

//屬性

//屬性值

ObjectAnimator animator = ObjectAnimator.ofFloat(iv, "translationX", 0, 100);

animator.setDuration(2000);

animator.start();

Animation動畫框架僅僅只是讓圖像發(fā)生位移,而監(jiān)聽事件依然在原地。而屬性動畫可以移動讓監(jiān)聽事件也跟著移動。

多個屬性動畫實現(xiàn)01

PropertyValuesHolder p01 = PropertyValuesHolder.ofFloat("translationX", 0, 100);

PropertyValuesHolder p02 = PropertyValuesHolder.ofFloat("translationY", 0, 100);

PropertyValuesHolder p03 = PropertyValuesHolder.ofFloat("rotation", 0, 360);

ObjectAnimator animator = ObjectAnimator.ofPropertyValuesHolder(iv, p01, p02, p03);

animator.setDuration(2000);

animator.start();

多個屬性動畫實現(xiàn)02

ObjectAnimator oa01 = ObjectAnimator.ofFloat(iv, "translationX", 0, 50);

ObjectAnimator oa02 = ObjectAnimator.ofFloat(iv, "translationY", 0, 50);

ObjectAnimator oa03 = ObjectAnimator.ofFloat(iv, "rotation", 0, 360);

AnimatorSet set = new AnimatorSet();

//同時播放

//set.playTogether(oa01, oa02, oa03);

//按順序播放(先播01,再播02,最后播03)

//set.playSequentially(oa01, oa02, oa03);

//按指定順序播放 (01和02同時播放,最后播放03)

set.play(oa01).with(oa02);

set.play(oa03).after(oa01);

set.setDuration(1000);

set.start();

動畫監(jiān)聽事件

透明度屬性動畫

ObjectAnimator animator = ObjectAnimator.ofFloat(v, "alpha", 0, 1);

animator.setDuration(1000);

//添加屬性動畫的監(jiān)聽

animator.addListener(new AnimatorListener() {

@Override

public void onAnimationStart(Animator animation) {

// TODO Auto-generated method stub

}

@Override

public void onAnimationRepeat(Animator animation) {

// TODO Auto-generated method stub

}

//動畫結(jié)束之后調(diào)用該方法

@Override

public void onAnimationEnd(Animator animation) {

// TODO Auto-generated method stub

Toast.makeText(MainActivity.this, "click", Toast.LENGTH_SHORT).show();

}

@Override

public void onAnimationCancel(Animator animation) {

// TODO Auto-generated method stub

}

});

animator.start();

使用ValueAnimator改變文字顏色

ValueAnimator valueAni = ValueAnimator.ofInt(0, 255);

valueAni.setDuration(2000);

valueAni.addUpdateListener(new AnimatorUpdateListener() {

@Override

public void onAnimationUpdate(ValueAnimator animation) {

// TODO Auto-generated method stub

tv.setTextColor(Color.rgb((Integer)animation.getAnimatedValue(), 0, 0));

}

});

valueAni.start();

本站聲明: 本文章由作者或相關(guān)機構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內(nèi)容真實性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請及時聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車的華為或?qū)⒋呱龈蟮莫毥谦F公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

加利福尼亞州圣克拉拉縣2024年8月30日 /美通社/ -- 數(shù)字化轉(zhuǎn)型技術(shù)解決方案公司Trianz今天宣布,該公司與Amazon Web Services (AWS)簽訂了...

關(guān)鍵字: AWS AN BSP 數(shù)字化

倫敦2024年8月29日 /美通社/ -- 英國汽車技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開發(fā)耗時1.5...

關(guān)鍵字: 汽車 人工智能 智能驅(qū)動 BSP

北京2024年8月28日 /美通社/ -- 越來越多用戶希望企業(yè)業(yè)務(wù)能7×24不間斷運行,同時企業(yè)卻面臨越來越多業(yè)務(wù)中斷的風(fēng)險,如企業(yè)系統(tǒng)復(fù)雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務(wù)連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報道,騰訊和網(wǎng)易近期正在縮減他們對日本游戲市場的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會開幕式在貴陽舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導(dǎo)體

8月28日消息,在2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會上,華為常務(wù)董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機 衛(wèi)星通信

要點: 有效應(yīng)對環(huán)境變化,經(jīng)營業(yè)績穩(wěn)中有升 落實提質(zhì)增效舉措,毛利潤率延續(xù)升勢 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競爭力 堅持高質(zhì)量發(fā)展策略,塑強核心競爭優(yōu)勢...

關(guān)鍵字: 通信 BSP 電信運營商 數(shù)字經(jīng)濟

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺與中國電影電視技術(shù)學(xué)會聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會上宣布正式成立。 活動現(xiàn)場 NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會上,軟通動力信息技術(shù)(集團)股份有限公司(以下簡稱"軟通動力")與長三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉