第7章 android動畫

2021-07-26 15:20:46 字數 2236 閱讀 4910

view動畫

view動畫包括平移,透明,縮放,旋轉。用xml檔案在res/anim建立set標籤做動畫集合。interpolator插值器來改變動畫是速度;shareinterpolator是否共享插值器。用duration改變動畫時間,fillafter表示動畫結束是否停留。最後通過animationutils呼叫anim檔案。可以setanimationlisterner新增動畫監聽。

自定義view動畫

幀動畫系統提供androiddrawable類使用幀動畫,xml可以在drawableanimation-list標籤。注意避免過大引起oom.

layoutanimation作用於viewgroup,常備用於listview等。

xmlns:android=""

android:delay="30%"

android:animationorder="reverse"

android:animation="@anim/slide_right"/>

activity切換效果

overridependingtransition(r.anim.zoomin, r.anim.zoomout)第乙個引數是開啟動畫,第二個引數是暫停動畫

淡入淡出的效果android的包中已經提供了,

overridependingtransition(android.r.anim.fade_in, android.r.anim.fade_out);

左右滑動的效果android的效果也提供了,

overridependingtransition(android.r.anim.slide_in_left, android.r.anim.slide_out_right);

fragment可以通過fragmenttrasactionsetcustomanimation來切換動畫。

注意必須startactvity或者finish後面呼叫

屬性動畫

屬性動畫可以對任意物件做動畫,但是它是從api 11才有的,所以存在相容性問題,可以考慮使用開源動畫庫nineoldandroids。

常用動畫類valueanimatorobjectanimatoranimatorset

插值器和估值器:屬性動畫實現非勻速動畫的重要手段

時間插值器timeinterpolator的作用是根據時間流逝的百分比計算出當前屬性值改變的百分比,系統內建的插值器有線性插值器linearinterpolator、加速減速插值器acceleratedecelerateinterpolator和減速插值器decelerateinterpolator

型別估值器(typeevaluator)的作用是根據當前屬性改變的百分比計算出改變後的屬性值,系統內建的估值器有intevaluatorfloatevaluatorargbevaluator

屬性動畫的工作原理:屬性動畫需要執行在有looper的執行緒中,反射呼叫get/set方法。對任意屬性做動畫的方法:用乙個類封裝原始物件或者valueanimator

使用動畫的注意事項1)屬性動畫中的無限迴圈動畫需要在activity退出的時候及時停止,否則將導致activity無法釋放而造成記憶體洩露。view動畫不存在這個問題;2)view動畫的問題:view動畫是對view的影像做動畫,並不是真正的改變view的狀態,因此有時候動畫完成之後view無法隱藏,即setvisibility(view.gone)失效了,此時需要呼叫view.clearanimation()清除view動畫才行;3)不要使用px;

第2章 Android動畫深入分析

view動畫的作用物件是view,它支援4中動畫效果,分別是平移動畫 縮放動畫 旋轉動畫和透明動畫。除了這四種典型的變換效果外,幀動畫也屬於view動畫,但是幀動畫的表現形式上和上面的四種動畫變化效果不太一樣。view動畫的四種變化效果對應著animation的四個子類 translateanima...

第7章 函式 7

7.7 類的成員函式 函式原型必須在類中定義。但是,函式體則既可以在類中也可以在類外定義。7.7.1 定義成員函式的函式體 類的所有成員都必須在類定義的花括號裡面宣告,此後,就不能再為類增加任何成員。類的成員函式必須加宣告的一般定義。類的成員函式既可以在類的定義內也可以在類的定義外定義。編譯器隱式地...

第7章 排序

第7章 排序 任何通用的排序演算法均需要nlogn次比較 7.1 預備知識 略7.2 插入排序 插入排序思想 在已排序狀態插入新元素 插入排序的最壞情形和平均情形均為n的平方 7.3 一些簡單排序演算法的下界 通過比較和交換來進行排序的演算法本質上是消除序列中的逆序數,因此求解該演算法的時間複雜度時...