www.久久久久|狼友网站av天堂|精品国产无码a片|一级av色欲av|91在线播放视频|亚洲无码主播在线|国产精品草久在线|明星AV网站在线|污污内射久久一区|婷婷综合视频网站

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

補(bǔ)間動(dòng)畫(Tween Animation)

補(bǔ)間動(dòng)畫有以下四種

Alpha透明度動(dòng)畫

Scale尺寸縮放動(dòng)畫

Translate位置移動(dòng)動(dòng)畫

Rotate旋轉(zhuǎn)動(dòng)畫

補(bǔ)間動(dòng)畫的共同屬性

Duration:動(dòng)畫持續(xù)時(shí)間(單位:毫秒)

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

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

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

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

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

動(dòng)畫實(shí)現(xiàn)方式

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

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

(更靈活)

例如

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

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

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

//設(shè)置動(dòng)畫時(shí)間為5秒

alpha.setDuration(5000);

//開始播放

img.startAnimation(alpha);

加載配置文件

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

//開始動(dòng)畫

img.startAnimation(scale);

AlphaAnimation

fromAlpha動(dòng)畫起始時(shí)的透明度 (1.0表示完全不透明)

toAlpha動(dòng)畫終止時(shí)的透明度 (0.0表示完全透明)

ScaleAnimation

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

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

pivotX,pivotY分別為伸縮動(dòng)畫相對(duì)于x,y軸開始位置

Translate

fromXDelta,fromYDelta分別是起始的X,Y的坐標(biāo)

toXDelta,toYDelta分別是結(jié)束時(shí)X,Y的坐標(biāo)

RotateAnimation

fromDegrees

toDegrees

pivotX,pivotY分別為旋轉(zhuǎn)動(dòng)畫相對(duì)于x,y的坐標(biāo)開始位置

動(dòng)畫監(jiān)聽(tīng)器

AnimationListener

幀動(dòng)畫(Frame Animation)

概念

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

幀動(dòng)畫實(shí)現(xiàn)

使用加載配置文件

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

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


<item< p="">

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

android:duration="播放該幀的時(shí)間"/>

<item< p="">

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

android:duration="播放該幀的時(shí)間"/>


//載入xml逐幀動(dòng)畫資源

imageView.setImageResource(R.drawable.btn_animation);

aniDrawable = (AnimationDrawable) imageView.getDrawable();

//播放動(dòng)畫

aniDrawable.setOneShot(true);

aniDrawable.start();

//停止動(dòng)畫

//aniDrawable.stop();

//檢查動(dòng)畫是否正在播放

//aniDrawable.isRunning();

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

//創(chuàng)建動(dòng)畫對(duì)象

AnimationDrawable aniDrawable = new AnimationDrawable();

//設(shè)置每一幀的幀圖片,每一幀播放時(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í)

制作不會(huì)說(shuō)話的湯姆貓

屬性動(dòng)畫(Property Animation)

概念

andorid3.0引入。屬性動(dòng)畫改變對(duì)象的一個(gè)field值實(shí)現(xiàn)動(dòng)畫。指定你想要的屬性,多長(zhǎng)時(shí)間,動(dòng)畫的值就可以實(shí)現(xiàn)了。

Animation的局限性

一個(gè)屬性動(dòng)畫的實(shí)現(xiàn)

//參數(shù):

//動(dòng)畫作用目標(biāo)

//屬性

//屬性值

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

animator.setDuration(2000);

animator.start();

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

多個(gè)屬性動(dòng)畫實(shí)現(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();

多個(gè)屬性動(dòng)畫實(shí)現(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();

//同時(shí)播放

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

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

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

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

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

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

set.setDuration(1000);

set.start();

動(dòng)畫監(jiān)聽(tīng)事件

透明度屬性動(dòng)畫

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

animator.setDuration(1000);

//添加屬性動(dòng)畫的監(jiān)聽(tīng)

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

}

//動(dòng)畫結(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)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請(qǐng)聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請(qǐng)及時(shí)聯(lián)系本站刪除。
換一批
延伸閱讀

LED驅(qū)動(dòng)電源的輸入包括高壓工頻交流(即市電)、低壓直流、高壓直流、低壓高頻交流(如電子變壓器的輸出)等。

關(guān)鍵字: 驅(qū)動(dòng)電源

在工業(yè)自動(dòng)化蓬勃發(fā)展的當(dāng)下,工業(yè)電機(jī)作為核心動(dòng)力設(shè)備,其驅(qū)動(dòng)電源的性能直接關(guān)系到整個(gè)系統(tǒng)的穩(wěn)定性和可靠性。其中,反電動(dòng)勢(shì)抑制與過(guò)流保護(hù)是驅(qū)動(dòng)電源設(shè)計(jì)中至關(guān)重要的兩個(gè)環(huán)節(jié),集成化方案的設(shè)計(jì)成為提升電機(jī)驅(qū)動(dòng)性能的關(guān)鍵。

關(guān)鍵字: 工業(yè)電機(jī) 驅(qū)動(dòng)電源

LED 驅(qū)動(dòng)電源作為 LED 照明系統(tǒng)的 “心臟”,其穩(wěn)定性直接決定了整個(gè)照明設(shè)備的使用壽命。然而,在實(shí)際應(yīng)用中,LED 驅(qū)動(dòng)電源易損壞的問(wèn)題卻十分常見(jiàn),不僅增加了維護(hù)成本,還影響了用戶體驗(yàn)。要解決這一問(wèn)題,需從設(shè)計(jì)、生...

關(guān)鍵字: 驅(qū)動(dòng)電源 照明系統(tǒng) 散熱

根據(jù)LED驅(qū)動(dòng)電源的公式,電感內(nèi)電流波動(dòng)大小和電感值成反比,輸出紋波和輸出電容值成反比。所以加大電感值和輸出電容值可以減小紋波。

關(guān)鍵字: LED 設(shè)計(jì) 驅(qū)動(dòng)電源

電動(dòng)汽車(EV)作為新能源汽車的重要代表,正逐漸成為全球汽車產(chǎn)業(yè)的重要發(fā)展方向。電動(dòng)汽車的核心技術(shù)之一是電機(jī)驅(qū)動(dòng)控制系統(tǒng),而絕緣柵雙極型晶體管(IGBT)作為電機(jī)驅(qū)動(dòng)系統(tǒng)中的關(guān)鍵元件,其性能直接影響到電動(dòng)汽車的動(dòng)力性能和...

關(guān)鍵字: 電動(dòng)汽車 新能源 驅(qū)動(dòng)電源

在現(xiàn)代城市建設(shè)中,街道及停車場(chǎng)照明作為基礎(chǔ)設(shè)施的重要組成部分,其質(zhì)量和效率直接關(guān)系到城市的公共安全、居民生活質(zhì)量和能源利用效率。隨著科技的進(jìn)步,高亮度白光發(fā)光二極管(LED)因其獨(dú)特的優(yōu)勢(shì)逐漸取代傳統(tǒng)光源,成為大功率區(qū)域...

關(guān)鍵字: 發(fā)光二極管 驅(qū)動(dòng)電源 LED

LED通用照明設(shè)計(jì)工程師會(huì)遇到許多挑戰(zhàn),如功率密度、功率因數(shù)校正(PFC)、空間受限和可靠性等。

關(guān)鍵字: LED 驅(qū)動(dòng)電源 功率因數(shù)校正

在LED照明技術(shù)日益普及的今天,LED驅(qū)動(dòng)電源的電磁干擾(EMI)問(wèn)題成為了一個(gè)不可忽視的挑戰(zhàn)。電磁干擾不僅會(huì)影響LED燈具的正常工作,還可能對(duì)周圍電子設(shè)備造成不利影響,甚至引發(fā)系統(tǒng)故障。因此,采取有效的硬件措施來(lái)解決L...

關(guān)鍵字: LED照明技術(shù) 電磁干擾 驅(qū)動(dòng)電源

開關(guān)電源具有效率高的特性,而且開關(guān)電源的變壓器體積比串聯(lián)穩(wěn)壓型電源的要小得多,電源電路比較整潔,整機(jī)重量也有所下降,所以,現(xiàn)在的LED驅(qū)動(dòng)電源

關(guān)鍵字: LED 驅(qū)動(dòng)電源 開關(guān)電源

LED驅(qū)動(dòng)電源是把電源供應(yīng)轉(zhuǎn)換為特定的電壓電流以驅(qū)動(dòng)LED發(fā)光的電壓轉(zhuǎn)換器,通常情況下:LED驅(qū)動(dòng)電源的輸入包括高壓工頻交流(即市電)、低壓直流、高壓直流、低壓高頻交流(如電子變壓器的輸出)等。

關(guān)鍵字: LED 隧道燈 驅(qū)動(dòng)電源
關(guān)閉