色yeye在线视频观看_亚洲人亚洲精品成人网站_一级毛片免费播放_91精品一区二区中文字幕_一区二区三区日本视频_成人性生交大免费看

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

屬性動畫 時間:2018-09-27      來源:未知

Android提供了幾種動畫類型:View Animation(補間動畫) 、Drawable Animation (幀動畫)、Property Animation (屬性動畫)。View Animation相當(dāng)簡單,不過只能支持簡單的縮放、平移、旋轉(zhuǎn)、透明度基本的動畫,且有一定的局限性。比如:你希望View有一個顏色的切換動畫;你 希望可以使用3D旋轉(zhuǎn)動畫;你希望當(dāng)動畫停止時,View的位置就是當(dāng)前的位置;這些View Animation都無法做到。這就是Property Animation產(chǎn)生的 原因。

新引入的屬性動畫機制已經(jīng)不再是針對于View來設(shè)計的了,也不限定于只能實現(xiàn)移動、縮放、旋轉(zhuǎn)和淡入淡出這幾種動畫操作,同時也不再只是一 種視覺上的動畫效果了。它實際上是一種不斷地對值進(jìn)行操作的機制,并將值賦值到指定對象的指定屬性上,可以是任意對象的任意屬性。

一、相關(guān)API

ObjectAnimator 動畫的執(zhí)行類

ValueAnimator 動畫的執(zhí)行類

AnimatorSet 用于控制一組動畫的執(zhí)行

setDuration() 設(shè)置動畫時間

start() 開始動畫

cancel() 停止動畫在當(dāng)前位置

end() 動畫直接到終狀態(tài)

setRepeatMode 設(shè)置動畫重復(fù)方式

setRepeatCount設(shè)置動畫重復(fù)次數(shù)

二、ObjectAnimator使用

ObjectAnimator是屬性動畫框架中重要的實現(xiàn)類,創(chuàng)建一個ObjectAnimator只需要通過它的靜態(tài)方法直接返回一個ObjectAnimator對象。靜態(tài)方 法如下:

ofFloat(Object target, String propertyName, float... values);

ofInt(Object target, String propertyName, int... values);

ofObject(Object target, String propertyName, TypeEvaluator evaluator, Object... values);

這里先關(guān)注ofFloat、ofint,方法中有三個參數(shù):

Target:指定執(zhí)行動畫的view

propertyName:指定動畫的屬性

values:可變數(shù)組參數(shù),指定屬性對應(yīng)的屬性值

如下所示,給imageview設(shè)置漸變的動畫。

ObjectAnimator animator = ObjectAnimator.ofFloat(imageview, "alpha", 1.0f, 0.0f);

// 設(shè)置時間

animator. setDuration(1000);

// 開始動畫

animator.start();

 

下面列舉出一些可以直接使用的屬性:

translationX、translationY:這兩個屬性作為一種增量來控制著View對象從它布局容器的左上角坐標(biāo)開始的位置。

rotation、rotationX、rotationY:這三個屬性控制著View對象圍繞它的支點進(jìn)行2D和3D的旋轉(zhuǎn)。

scaleX和scaleY:這兩個屬性控制著View對象圍繞它的支點進(jìn)行2D縮放。

alpha:它表示View對象的alpha透明度。

二、ValueAnimator使用

ValueAnimator是整個屬性動畫中核心的一個類,前面介紹的ObjectAnimator也是繼承自ValueAnimator。

ValueAnimator本身不提供任何動畫效果,它更像一個數(shù)值發(fā)生器,用來產(chǎn)生具有一定規(guī)律的數(shù)字,從而讓調(diào)用者來控制動畫的實現(xiàn)過程。通常情 況下,在ValueAnimator的AnimatorUpdateListener中監(jiān)聽數(shù)值的變化,從而完成動畫的切換。

如下所示,利用ValueAnimator給imageview設(shè)置漸變的動畫。

ValueAnimator animator = ValueAnimator.ofFloat(1.0f, 0.0f);

animator.setDuration(1000);

animator.start();

// 反復(fù)循環(huán),REATART從頭開始循環(huán)

animator.setRepeatMode(ValueAnimator.REVERSE);

animator.setRepeatCount(ValueAnimator.INFINITE);// 無限循環(huán)

animator.addUpdateListener(new AnimatorUpdateListener() {

@Override

public void onAnimationUpdate(ValueAnimator animation) {

imageView.setAlpha((Float)animation.getAnimatedValue());

}

});

三、AnimatorSet使用

AnimatorSet這個類來幫我們實現(xiàn)組合屬性動畫的效果。AnimatorSet這個類提供了一個play()方法,如果我們向這個方法中傳入一個Animator對象 (ObjectAnimator或者ValueAnimator)將會返回一個AnimatorSet.Builder的實例,AnimatorSet.Builder中包含了以下四個方法:

after(Animator anim) : 將現(xiàn)有動畫插入到傳入的動畫之后執(zhí)行。

after(long delay):將現(xiàn)有的動畫延遲指定的毫秒后執(zhí)行。

before(Animator anim):將現(xiàn)有的動畫插入到傳入的動畫之前執(zhí)行。

with(Animator anim):將現(xiàn)有的動畫和傳入的動畫同時執(zhí)行。

// 移動動畫

ObjectAnimator transAnimator = ObjectAnimator.ofFloat(mTextView, "translationX", -500f, 300f);

// 旋轉(zhuǎn)動畫

ObjectAnimator rotationAnimator = ObjectAnimator.ofFloat(mTextView, "rotation", 0f, 360f);

// 淡入淡出

ObjectAnimator alphaAnimator = ObjectAnimator.ofFloat(mTextView, "alpha", 1f, 0f, 1f);

AnimatorSet animatorSet = new AnimatorSet();

animatorSet.play(rotationAnimator).with(alphaAnimator).after(transAnimator);

animatorSet.setDuration(5000);

animatorSet.start();

四、Animator監(jiān)聽器

對于動畫,一般都是一些輔助效果,比喻說一個view動畫結(jié)束后里一個view開始動畫,這就需要對動畫過程進(jìn)行監(jiān)聽。通過實現(xiàn)AnimatorListener 接口即可對動畫的Start、End、Repeat、Cancel四個狀態(tài)監(jiān)聽。

animator.addListener(new Animator.AnimatorListener() {

@Override

public void onAnimationStart(Animator animation) {

Log.e("tag", "onAnimationStart");

}

@Override

public void onAnimationEnd(Animator animation) {

Log.e("tag", "onAnimationEnd");

}

@Override

public void onAnimationCancel(Animator animation) {

Log.e("tag", "onAnimationCancel");

}

@Override

public void onAnimationRepeat(Animator animation) {

Log.e("tag", "onAnimationRepeat");

}

})

上一篇:簡析靜態(tài)庫與動態(tài)庫

下一篇:數(shù)據(jù)拷貝的方法解析

熱點文章推薦
華清學(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號

回到頂部

主站蜘蛛池模板: 欧美99久久无码一区人妻A片 | 韩国一级免费毛片 | 在线看片免费人成视频影院看 | 在线视频国产情侣不卡顿 | 最美女人体内射精一区二区 | 2017亚洲天堂最新地址 | 脱了美女内裤猛烈啪啪爽 | 亚洲国产精品色婷婷 | 操韩国美女 | 色情无码www视频无码区小黄鸭 | 不卡av一区| 久久这里只精品国产免费99热4 | 日韩一区欧美二区 | 亲近乱子伦免费视频无码 | 强被迫伦姧惨叫在线视频 | eee在线播放免费人成视频 | 美女高潮潮喷流白浆视频在线观看 | 无码国产精品一区二区免费16 | 日本丰满大乳人妻无码 | 真实乱子伦露脸自拍 | 99国精产品灬源码1688钻 | 欧美牲交A欧美牲交 | 免费人成又黄又爽的视频 | 色欲老女人人妻综合网 | asian日本java少妇乱子另类 | 内地老熟女老少配视频 | 草av在线| 欧美成人A激情 | 久久人人爽爽爽人久久久 | 妺妺窝人体色www美国 | 国产乡下三级全黄三级 | 蜜臀av 国内精品久久久 | 综合国产精品久久久 | 精品国产乱码久久久久夜深人妻 | 艳妇乳肉豪妇荡乳在线观看 | 欧美视频一二三区 | 无码av免费一区二区三区+ | 亚洲国模私拍人体gogo | 老头解开奶罩吸奶头高潮视频 | 男女18禁啪啪无遮挡激烈 | 国产精品久久777 |