要点
- 概述
- 基本知识点
- 自定义样式和主题
概述
样式是一组属性指定一个视图或窗口的外观和格式。样式可以指定一些属性:比如宽、高、字体大小、背景色等等。这些样式我们可以在一个xml资源文件中创建,与布局文件layout分离开。
在Android中样式(style)和主题是同一个东西,其定义格式是一模一样的,只是使用的场合不同。
基本知识点
1.系统也自带有style和主题,分别在SDK的platforms/android-版本/data/res/values下的styles.xml和themes.xml,但是值得一提的是两者其实是同一个东西只是使用的场合不同:
(1)清单文件中使用到主题(theme)和样式(style),作用都是指定当前Activity或者Application的主题。
如使用系统style/theme:
android:theme="@android:style/ButtonBar"
使用自定义主题:
android:theme="@style/MyStyle"。
自定义样式(style)和主题(theme)
其实有这两者的区别是:在清单文件中,无论使用系统自带的theme或者自定义的style都可以称为theme,因为这里的作用是整个应用或者当前activity的主题。而在布局文件中,也可以使用自定义的样式和系统自带的样式,但是这里只能成称为,比如文本样式、按钮样式等。
清单文件中使用主题:
(1)系统主题:android:theme=”@android:style/ButtonBar”
(2)自定义主题:android:theme=”@style/MyStyle”
布局文件中使用样式:
(1)系统样式:style=”@android:style/ButtonBar”
(2)自定义样式:style=”@style/ChildMyStyle”
上面都提到自定义主题,那么现在需要定制自己的主题,步骤:
(1)打开目录res/values下的styles.xml文件;
(2)添加resources的子标签:
<style name="ChildMyTheme" parent="MyTheme">
<item name="android:background">#00ff00</item>
</style>
说明:属性name指定名称ChildMyTheme,parent表示继承MyTheme的所有样式,改样式可以自定义也可以是系统的。item标签指定当前style/theme的样式,主题
item的那么属性值一定是与系统相符合的,比如字体颜色:
<item name="android:textColor">#0000ff</item>。