Android UI 加速技巧
当你的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>
摘自 薛显亮的博客
补充:移动开发 , Android ,