Android - 控件的样式(&主题)配置
Android中的样式(Style)和CSS样式作用相似,都是用于为界面元素定义显示风格,它是一个包含一个或者多个view控件属性的集合。
如:需要定义字体的颜色和大小。
定义样式
第一步:在配置文件中定义样式
在应用的资源文件res/values/styles.xml文件中添加如下内容
1 | <resources> |
第二步:在布局文件中引用样式
在layout文件中可以像下面这样使用上面的android样式:
1 | <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" ....> |
<style>
节点还可以指定parent
属性。这个属性可以让当前样式完全继承一个父样式,并且可以增删改一些新的样式。
如:
1 | <style name=“text_title” parent="text"> <!-- 继承text样式--> |
Activity的主题配置
主题(Theme)的定义和样式的定义是一样的,在资源文件res/values/styles.xml中添加<style>
节点:
1 | <style name="AppBaseTheme" parent="android:Theme.Light"></style> |
定义一个全屏的主题
1 | <style name="NoTitle_FullScreen"> |
Tips:“?“用于引用在当前<style>
节点中定义过的<item>
的值(true)。
使用自定义的主题
配置在<application>
节点上,为全局主题,配置在<activity>
节点上,则是指定Activity的主题:
1 | <application android:icon="@drawable/icon" |
系统自带样式Android:theme.
查看文档的reference/android/R.style
- android:theme=”@android:style/Theme.Dialog” 对话框
- android:theme=”@android:style/Theme.NoTitleBar” 无标题栏
- android:theme=”@android:style/Theme.NoTitleBar.Fullscreen” 不显示应用程序标题栏,并全屏
- android:theme=”@android:style/Theme.Light” 背景为白色
- android:theme=”@android:style/Theme.Light.NoTitleBar” 白色背景并无标题栏
- android:theme=”@android:style/Theme.Light.NoTitleBar.Fullscreen” 白色背景,无标题栏,全屏
- android:theme=”@android:style/Theme.Black” 背景黑色
- android:theme=”@android:style/Theme.Black.NoTitleBar” 黑色背景,无标题栏
- android:theme=”@android:style/Theme.Black.NoTitleBar.Fullscreen” 黑色背景,无标题栏,全屏
- android:theme=”@android:style/Theme.Wallpaper” 用系统桌面为应用程序背景
- android:theme=”@android:style/Theme.Wallpaper.NoTitleBar” 用系统桌面为应用程序背景,且无标题栏
- android:theme=”@android:style/Theme.Wallpaper.NoTitleBar.Fullscreen” 用系统桌面为应用程序背景,无标题栏,全屏
- android:theme=”@android:style/Translucent” 透明主题
- android:theme=”@android:style/Theme.Translucent.NoTitleBar” 无标题栏的透明主题
- android:theme=”@android:style/Theme.Translucent.NoTitleBar.Fullscreen” 全屏模式的透明主题
Author: Yrom
Link: https://yrom.net/blog/2011/12/22/android-conf-style-and-theme/
License: 知识共享署名-非商业性使用 4.0 国际许可协议