Frame幀動畫以及Animator屬性動畫的詳解

2021-08-20 19:12:07 字數 2831 閱讀 5206

動畫的應用幾乎隨處可見,可見其重要性:下面是幀動畫以及屬性動畫的一些簡單介紹~

// 初始化幀動畫 ( 管理各個幀影象的類 )

animationdrawable = new animationdrawable();

// 新增幀(新增影象)

for (int i = 1; i < 11; i++)

animationdrawable.setoneshot(false); // 是否只執行一次

iv.setimagedrawable(animationdrawable);

frame動畫可以使用animationdrawable來管理各個幀影象,然後控制他啟動,停止

case r.id.btn_start:

animationdrawable.start();

break;

case r.id.btn_stop:

animationdrawable.stop();

break;

xml 中的配置,可以在 drawable 中建立 xml 檔案,根節點為 animation-list ,如: my_frame_anim.xml

<?xml version="1.0" encoding="utf-8"?>

設定到檢視上顯示動畫

animator 屬性動畫

通過不斷的改變物件的某些屬性(基於數值的變化改變某個屬性值),不斷的重新整理形成的動畫,常用的有 objectanimator( 改變物件的屬性 set get) 、valueanimator( 數值的變化 )

objectanimator

操作的是乙個物件的 get/set 方法對應的屬性,不斷的改變屬性值,使其不斷的變化產生的動畫

view v;

this.v = v;

}public void setwidth(int width)

public int getwidth()

}

// 建立檢視操作物件 ( 其中提供了 getwidth 和 setwidth 方法來改變或者獲取其寬度值 )

//ofint 表示針對某個屬性值進行整數的變化

// 改變的物件,改變屬性名稱,變化的數值

.setduration(2000) // 變化的時間

.start(); // 開始

常用屬性操作
// 改變透明度

objectanimator.offloat(iv3,view.alpha,1.0f,0.5f).setduration(2000).start();

// 平移 translation_x 水平平移 translation_y 垂直 translation_z 垂直手機螢幕移動

objectanimator.offloat(iv3,view.translation_x,0,100).setduration(2000).start();

// 旋轉 rotation_x 表示沿著 x 軸轉 rotation_y 沿著 y 軸轉 rotation 沿著 z 軸轉

objectanimator.offloat(iv3,view.rotation_y,0,60).setduration(2000).start();

// 縮放 scale_x 縮放寬度 scale_y 縮放高度

objectanimator.offloat(iv3,view.scale_x,1,2.0f).setduration(2000).start();

valueanimator
// 建立乙個值變化的物件

valueanimator animator = valueanimator.offloat(1,100);

animator.setduration(2000);

// 生成的值的特效

animator.setinterpolator(new bounceinterpolator());

// 監聽變化

animator.addupdatelistener(new valueanimator.animatorupdatelistener()

});// 開始動畫

animator.start();

可以配合計算因子一起去使用計算目標值
final intevaluator envaluator = new intevaluator();

// 建立乙個值變化的物件

valueanimator animator = valueanimator.offloat(1,100);

animator.setduration(2000);

// 生成的值的特效

animator.setinterpolator(new bounceinterpolator());

// 監聽變化

animator.addupdatelistener(new valueanimator.animatorupdatelistener()

});// 開始動畫

animator.start();

evaluator

可以基於產生的值的百分比結合起始值和終止值之間計算出最終目標值

intevaluator 計算整數

floatevaluator 計算小數值

argbevaluator 計算顏色值

typeevaluator 可以實現任何型別的計算

public class intevaluator implements typeevaluator

}

Unity即將內建骨骼動畫外掛程式Anima2D

unity一直在尋找新的方法來幫助開發者,並為他們提供最好的工具。在此我們向大家宣布,unity將內建流行的骨骼動畫外掛程式anima2d,從2017年1月開始免費供所有unity開發者使用!同時也歡迎外掛程式作者sergi valls與這個強大的外掛程式一起,加入我們專業的2d團隊。我們致力於讓遊...

Android動畫 幀動畫

首先在res中新建乙個drawable資料夾,將需要展示的放在裡面,同樣的還有展示的fight.xml檔案,如下 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 ...

css動畫 幀動畫

動畫 animation 設定關鍵幀 從左上,到右上,到右下的動畫 上面是系統性動畫屬性,下面拆分 animation 綜合性的動畫設定屬性 animation name 動畫名稱 animation duration 動畫的時間週期 animation timing function 動畫變化的速...