Framework层封装了系统样式,主要是在framework/base/core/res/res/values中的文件,如themes.xml、styles.xml、colors、dimens.xml、public.xml。
系统样式基本是在themes.xml中定义,Android4.0.3提供了Theme、Theme.Light、Theme.Holo、 Theme.Holo.Light、Theme.Holo.Light.DarkActionBar等几套主题,系统默认的主题为Theme.Holo。分析Theme.Holo主题可以看出基本包含整个系统样式的指定,如文字大小与颜色、窗口样式、对话框样式、ActionBar样式等等 ,下面以Android4.0新控件Switch样式设定为例分析:
在Theme.Holo主题下找到
<item name="switchStyle"> @android :style/Widget.Holo.CompoundButton.Switch</item>
1)name=”switchStyle”属性指定了该item的name,因此当需要时直接根据该name就可使用该item;
2) @android :style/Widget.Holo.CompoundButton.Switch是该Item所对应的值,要去styles.xml文件中查找Widget.Holo.CompoundButton.Switch,如下:
<style name="Widget.Holo.CompoundButton.Switch">
<item name="android:track"> @android :drawable/switch_track_holo_dark</item>
Framework层系统样式基本是用上述方法来规定系统样式的。
系统样式基本是在themes.xml中定义,Android4.0.3提供了Theme、Theme.Light、Theme.Holo、 Theme.Holo.Light、Theme.Holo.Light.DarkActionBar等几套主题,系统默认的主题为Theme.Holo。分析Theme.Holo主题可以看出基本包含整个系统样式的指定,如文字大小与颜色、窗口样式、对话框样式、ActionBar样式等等 ,下面以Android4.0新控件Switch样式设定为例分析:
在Theme.Holo主题下找到
<item name="switchStyle"> @android :style/Widget.Holo.CompoundButton.Switch</item>
1)name=”switchStyle”属性指定了该item的name,因此当需要时直接根据该name就可使用该item;
2) @android :style/Widget.Holo.CompoundButton.Switch是该Item所对应的值,要去styles.xml文件中查找Widget.Holo.CompoundButton.Switch,如下:
<style name="Widget.Holo.CompoundButton.Switch">
<item name="android:track"> @android :drawable/switch_track_holo_dark</item>
<item name="android:thumb">@android :drawable/switch_inner_holo_dark</item>
................
</style>
如上所示,其中规定了Switch各种属性,包括尺寸大小,所需图片等等.Framework层系统样式基本是用上述方法来规定系统样式的。