使用ObjectAnimator設定動畫

2021-06-26 08:14:29 字數 1311 閱讀 3763

objectanimator是valueanimator的子類,他本身就已經包含了時間引擎和值計算,所以它擁有為物件的某個屬性設定動畫的功能。這使得為任何物件設定動畫更加的容易。你不再需要實現 valueanimator.animatorupdatelistener介面,因為objectanimator動畫自己會自動更新相應的屬性值。

objectanimator的例項和valueanimator是類似的,但是你需要描敘該物件,需要設定動畫的屬性的名字(乙個字串),以及動畫屬性值的變化範圍:

objectanimator anim = objectanimator.offloat(foo, "alpha", 0f, 1f);

anim.setduration(1000);

anim.start();

為了使objectanimator正確的更新屬性值,你需要:

1、你要設定動畫的物件的屬性必須有乙個set該值的方法。因為objectanimator在動畫的過程中自動更新屬性值,這是通過呼叫該屬性的set方法來實現的。例如,如果屬性的名字是foo,你需要有乙個setfoo()的方法,如果不存在set方法,你可以有下面三個選擇:

2)、使用乙個包裹類,通過該包裹類你可以去修改和獲取屬性值的變化,然後把它向前定向到原來的值

3)、使用valueanimator類替換

2、如果你在乙個objectanimator中只為屬性值設定乙個值,這個值被任務是動畫的結束值。 這樣的話,該物件必須有乙個get方法來獲取該屬性值作為動畫的起始值.get方法必須類似於get《屬性名》.例如,如果屬性的名字叫foo,你需要有乙個getfoo(),方法。

3、動畫的屬性值的gettter()方法(如果需要)和setter方法必須作用跟objectanimator中的起始值是乙個型別,例如如果你構造objectanimator的方式是如下這樣的,則該屬性值的getter和setter方法必須如targetobject.setpropname(float) 和targetobject.getpropname(float),即都是浮點型

objectanimator.offloat(targetobject, "propname", 1f)

4、依賴於你設定動畫的物件和屬性,你可能需要呼叫view的invalidate來強制螢幕重現繪製以及更新動畫值。你可以在 onanimationupdate()中做這個工作。例如,為乙個drawable物件的顏色屬性設定動畫,你僅僅需要在該物件重繪的時候更新螢幕。所有view屬性的set方法,例如setalpha()和settranslationx()自己會呼叫invalid方法,所以當這些屬性值有更新時,你不需要再次呼叫invalid方法。要獲取更多關於***的資訊。你可以檢視***章節。

使用GraphEdit使用

1 註冊元件。其實乙個filter就是乙個com元件,所以使用之前需要註冊,可以有兩種方法對元件進行註冊。1.直接使用命令。命令列下輸入 regsvr32 hqtlystd.ax 編譯之後你會在工程目錄下的debug中找到hqtlystd.ax,這個就是要用的filter 即可註冊成功。2.vc6....

MySQL使用學習使用 mysql學習使用

1 mysql學習 1 安裝 ubuntu下直接安裝 apt get install mysql server 2 檢查伺服器是否啟動 sudo netstat tap grep mysql,如果啟動成功,出現以下資訊 tcp00localhost.localdomain mysql listen ...

學習使用CSDN markdown使用

建立乙個自定義列表 如何建立乙個註腳 注釋也是必不可少的 katex數學公式 新的甘特圖功能,豐富你的文章 uml 圖表 flowchart流程圖 匯出與匯入 你好!這是你第一次使用markdown編輯器所展示的歡迎頁。如果你想學習如何使用markdown編輯器,可以仔細閱讀這篇文章,了解一下mar...