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

图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>


更多相关文章

  1. android的selector-背景选择器
  2. Android 解决65535的限制 使用android-support-multidex解决Dex
  3. Android 应用语言切换的三种方法
  4. Android CheckBox中设置padding无效问题解决方法
  5. Android设备Root检测方法
  6. Android Studio中创建Selector文件的方法
  7. blcr加速android启动速度遇到的问题及解决方法

随机推荐

  1. 图片背景平铺
  2. Android自定义控件按钮
  3. Android输入密码密文显示
  4. Android事件处理流程
  5. Android(安卓)Color.xml
  6. Android中的Shape属性
  7. Android(安卓)shape画圆点
  8. android intent action
  9. Android(安卓)label 倒是是怎么
  10. 常用颜色