Android UI 加速技巧

來源:互聯網
上載者:User

當你的Android應用的Activity需要採用Custom drawable的背景時,採用自訂的Theme可以節省UI的載入顯示速度。
 
    解釋原因之前,需要澄清一個概念:
 
    window background。許多人認為這個背景應該是調用setContentView時的布局的背景,實際上,當你調用了這個方法之後,Android會把你的View添加到相應Activity的window,而這個window不僅僅包含你的View,還包含了一大堆其他的東西,1.1
 
                                     
 
圖1.1
 
     看被藍色高亮的那個View,是一個叫做DecorView的東東,它是實際持有window's background drawable的傢伙!在當前的Activity調用getWindow().setBackgroundDrawable()方法是修改DecorView的Drawable。
 
    如果你使用的是Android的預設主題,一個預設的背景drawable會被設定到你的Activity上(DecorView的background drawable)。大多數情況下,這不會有什麼效能的影響,但是如果你打算為你的Activity設定一個不透明的全屏圖片作為背景圖片,這時預設的背景Drawable就是多餘的,在渲染時會有一定的效能影響。
 
    通過自訂Theme,設定android:windowBackground屬性為你自己的Drawable資源,可以替換掉預設的window background drawable。即簡單,又解決了效能問題。
 
    例子(From Shelves)
 
 背景Drawable資源
<bitmap xmlns:android="http://schemas.android.com/apk/res/android"
    android:src="@drawable/shelf_panel"
    android:tileMode="repeat" />
 自訂的Theme
  <resources>
    <style name="Theme.Shelves" parent="android:Theme">
        <item name="android:windowBackground">@drawable/background_shelf</item>
        <item name="android:windowNoTitle">true</item>
    </style>
  </resources>

摘自 薛顯亮的部落格

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.