IT培训机构|91免费精品视频|专注编程培训|91免费精品|软件开发培训_91免费国产视频_华清远见教育

當(dāng)前位置:首頁 > 嵌入式培訓(xùn) > 嵌入式學(xué)習(xí) > 講師博文 > Android動畫

Android動畫 時間:2018-09-26      來源:未知

補(bǔ)間動畫(Tween Animation)

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

Alpha透明度動畫

Scale尺寸縮放動畫

Translate位置移動動畫

Rotate旋轉(zhuǎn)動畫

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

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坐標(biāo)上的伸縮尺寸

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

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

Translate

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

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

RotateAnimation

fromDegrees

toDegrees

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

動畫監(jiān)聽器

AnimationListener

幀動畫(Frame Animation)

概念

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

幀動畫實現(xiàn)

使用加載配置文件

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

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

<animation-list xmlns:android="//schemas.android.com/apk/res/android" >

<item

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

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

<><item

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

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

</animation-list>

//載入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ù):

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

//屬性

//屬性值

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();

上一篇:DOM 元素尺寸與位置

下一篇:交叉編譯器解析

熱點文章推薦
華清學(xué)員就業(yè)榜單
高薪學(xué)員經(jīng)驗分享
熱點新聞推薦
前臺專線:010-82525158 企業(yè)培訓(xùn)洽談專線:010-82525379 院校合作洽談專線:010-82525379 Copyright © 2004-2022 北京華清遠(yuǎn)見科技集團(tuán)有限公司 版權(quán)所有 ,京ICP備16055225號-5京公海網(wǎng)安備11010802025203號

回到頂部

主站蜘蛛池模板: 欧路哲门窗|佛山欧路哲门窗有限公司|专业门窗定制品牌 | 潍坊卓瑞机械有限公司,输送设备,石灰消化设备,餐厨垃圾设备,化机浆设备,污泥脱水 | 西安宣传片拍摄,陕西艺景网络科技有限公司资料备份,西安影视公司,视频拍摄制作,抖音视频制作,纪录片拍摄西安短视频摄影团队,西安抖音视频拍摄 | 南京文化墙设计公司,南京包装设计制作印刷,南京PPT设计公司,导视制作公司,企业logo设计 | 雷达液位计_耐磨热电偶_蒸汽_柴油,汽油_天然气流量计_巴歇尔槽_一体化温度变送器-江苏翔腾仪表有限公司 | 磨粉机_上海磨粉机_雷蒙磨粉机_超细磨粉机_磨粉机价格-上海山卓重工机械有限公司 | 首页 - 郑州市宏美彩印包装有限公司 | 喷雾式干燥机-真空桨叶干燥机-桨叶干燥器-常州力马干燥科技有限公司 | 树脂门|卫浴门|医院门|医院专用门|卫生间门—湖南航天康达树脂门 | 无源电子锁_五防锁_机柜锁_物联网锁_智能锁控管理-Vanma | 生物安全柜检测,GMP设备确认,仪器性能确认,洁净厂房检测,仓储温湿度检测-上海熙迈 | 无锡今飞激光技术有限公司-手持激光焊接机_激光打标机_激光清洗机_平台激光焊接机_焊接专机- | 增压泵-离心泵-管道泵-排污泵-上海渤泉泵业制造有限公司 【官方网站】 | 长春互联网运营值选星广传媒,长春短视频运营,长春新媒体运营,长春互联网运营,长春抖音运营,吉林视频号代运营,吉林快手代运营,短视频推广公司,公众号运营,微博运营,新媒体运营 | 智能化会议系统|多媒体会议系统|无纸化会议系统|会议音箱|高清视频会议终端|智能化会议室|会议系统|视频会议系统-深圳市航视达科技有限公司 | 温湿度变送器_pm2.5传感器_湿敏电阻_二氧化碳传感器_甲醛传感器-美特瑞科技 | 玉米加工机械_玉米深加工机械_玉米加工设备--河南工粮机械设备有限公司 | 圆柱模板_圆柱木模板_方柱加固件_建材板材网 | 真空工业炉-真空油淬炉-真空气淬炉-高温石墨化炉-江苏华弘真空科技有限公司 | 河北拉丝模具厂家,沧州拉丝模具-任丘市鹏宇模具有限公司 | 展馆周边酒店_会展中心附近酒店_展览旅游酒店预订官网-盟友云 | 皮带清扫器-皮带聚氨酯合金空段输送带清扫器刮刀厂家-衡水格锐特机械科技有限公司 | 实木全屋定制|整木定制|整木家装|实木护墙板-浩冠家具官网 | 吉安天卓选矿药剂有限公司| 铅板-济南鑫玉防辐射材料有限公司 | 晶圆盒垫纸|铝线棒精益管|防静电接地系统工程-上海德拉电子科技有限公司 | 腻子粉厂家_耐水腻子粉_内墙腻子粉批发_生态腻子粉_长沙美恩生态腻子粉厂家 | 双合金螺杆|注塑机螺杆|挤出机螺杆|双合金料管—东莞市精耐螺杆机械有限公司 | 庭院大门,铝艺大门厂家,别墅庭院大门「免费设计」汉兰达庭院门厂家 | 九洲集团官网(300040)—哈尔滨九洲集团股份有限公司 | 景德镇古窑民俗博览区-国家AAAAA级旅游景区_全国旅游标准化示范景区_国家文化产业示范基地_国家级非物质文化遗产生产性保护示范基地--官方网站 | 上海钧尚电器有限公司 - Faulhaber电机 AMETEK pittman电机 AMETEK ROTRON军用航空风机 Exlar电动缸 MAE电机 MCG电机 CP电动工具 马头工具 AMCI驱动器 直流电机 减速箱 直流伺服电机,无刷电机,直线电机 直流防爆电机 防爆电机 汽车助力转向电机 EPS电机 faulhaber motor faulhaber gearbox NANOTEC电机 ELWOOD电机 PHYTRON电机 EXLAR伺服电动缸 高力矩、高性能直流电机,音圈电机,风机,直流风机,航空风机 | 上海机械网 机械 机械加工 金属加工 上海机械网 机械设备 上海机械 | 四边封包装机_蒸汽眼罩机_暖宝宝/足贴/热灸贴生产设备_浙江硕源机械有限公司 | 桶装水配送-瓶装水-净水器-厦门水之露商贸有限公司,电话:18205922444 | 中国家居资讯网-家居建材-知名十大品牌-著名品牌资讯网 | 小字符喷码机,激光喷码机,喷码机厂家_山东闪创电子设备有限公司 小型生活污水处理设备_MBR膜生物反应器_口腔医院/脱脂污水处理设备_酸洗磷化/喷涂废水处理设备-上海台江环保 | 河北高新技术企业认定,沧州商标注册,沧州9001质量管理体系认证,沧州高新技术企业认定,沧州体系认证,沧州商标续展,沧州版权登记,河北国瑞企业管理咨询有限公司 | 秦皇岛市信恒电子科技有限公司| 济南时代,济南时代试验机,试金老品牌-济南时代试验机技术有限公司 | 西安墓园-山水殡葬服务-提供免费墓地咨询服务 |