優化View(Optimizing the View)

優化View(Optimizing the View
http://developer.android.com/training/custom-views/optimizing-view.html
你有一個設計好的View負責不同手勢和狀態間的切換,確保view運行很快。爲了避免感覺界面緩慢或者卡頓,確保動畫一直是每秒60幀。

更少,減少頻率
想讓你的view運行加速,通常會在頻繁使用的代碼中減少不必要的部分。從onDraw()開始,會有最顯著效果。尤其減少在onDraw()中的內容,
因爲如果onDraw中內容很多會引發垃圾回收從而緩慢。在初始化或者在動畫期間分配對象。一定不要在動畫運行時分配。
使onDraw()更簡潔,同樣確保儘可能少的調用。大部分對onDraw()調用都是因爲調用invalidate()導致的,所以減少對invalidate()不必要的調用。
另外一個非常耗資源的操作是遍歷佈局。任何時間view調用requestlayout(),安卓UI系統需要遍歷一層層view來確定每個view需要多大。
如果發現矛盾的測量數據,他可能需要一層層遍歷很多遍。UI設計者有時爲了讓UI更好顯示會設計比較深的ViewGroup嵌套。這個深的層級view導致顯示問題。
讓你的view層級關係儘可能淺。
如果你有一個混合的UI,考慮寫一個自定義的ViewGroup來展示它的佈局。不像內嵌的view,你的自定義view可以讓程序指定假設它孩子的尺寸和形狀,
這樣可以避免遍歷它的孩子去計算測量值。PieChart例子展示如何繼承ViewGroup並作爲自定義view的一部分。
PieChart有子view,但是從來不測量他們。相反,他直接設置他們尺寸根據他自己自定義的佈局算法。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章