欢迎访问移动开发之家(rcyd.net),关注移动开发教程。移动开发之家  移动开发问答|  每日更新
页面位置 : > > > 内容正文

Android UI 加速技巧

来源: 开发者 投稿于  被查看 26226 次 评论:34

Android UI 加速技巧


当你的Android应用的Activity需要采用Custom drawable的背景时,采用自定义的Theme可以节省UI的加载显示速度。
 
    解释原因之前,需要澄清一个概念:
 
    window background。许多人认为这个背景应该是调用setContentView时的布局的背景,实际上,当你调用了这个方法之后,Android会把你的View添加到相应Activity的window,而这个window不仅仅包含你的View,还包含了一大堆其他的东西,如图1.1
 
   03120612_LAL9.png (287×480)                                  
 
图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>

摘自 薛显亮的博客

相关文章

    暂无相关文章

用户评论