view動畫
view動畫包括平移,透明,縮放,旋轉。用xml檔案在res/anim建立set標籤做動畫集合。interpolator插值器來改變動畫是速度;shareinterpolator是否共享插值器。用duration改變動畫時間,fillafter表示動畫結束是否停留。最後通過animationutils呼叫anim檔案。可以setanimationlisterner新增動畫監聽。
自定義view動畫
幀動畫系統提供androiddrawable類使用幀動畫,xml可以在drawable用animation-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可以通過fragmenttrasaction的setcustomanimation來切換動畫。
注意必須startactvity或者finish後面呼叫
屬性動畫
屬性動畫可以對任意物件做動畫,但是它是從api 11才有的,所以存在相容性問題,可以考慮使用開源動畫庫nineoldandroids。
常用動畫類valueanimator,objectanimator和animatorset。
插值器和估值器:屬性動畫實現非勻速動畫的重要手段
時間插值器timeinterpolator的作用是根據時間流逝的百分比計算出當前屬性值改變的百分比,系統內建的插值器有線性插值器linearinterpolator、加速減速插值器acceleratedecelerateinterpolator和減速插值器decelerateinterpolator。
型別估值器(typeevaluator)的作用是根據當前屬性改變的百分比計算出改變後的屬性值,系統內建的估值器有intevaluator、floatevaluator和argbevaluator。
屬性動畫的工作原理:屬性動畫需要執行在有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 一些簡單排序演算法的下界 通過比較和交換來進行排序的演算法本質上是消除序列中的逆序數,因此求解該演算法的時間複雜度時...