Styles and Themes
1 概念
1.1 style
Style是指一个关于组件或窗口的特定显示方式的属性集合,Style.xml资源文件与对应的layout.xml资源文件分开定义。Android中的style使用网页设计的级联方式,使得设计与内容分离。借助style可以完成Layout文件的简化,将layout的所有属性值放到一个名为XXX的style.xml文件中实现
1.2 theme
Theme是应用到整个Activity,甚至是APP的一种特定设计风格style,而不是仅仅用于某个View。一旦一个是style作为一个theme进行应用,那么意味着这个Activity或app上所有的View都将应用该style。
2 define styles
- 可以创建多个style文件,但位置必须位于工程目录
res/values/;文件名可以任意取,但必须为xml扩展名
- XXX.xml的style文件的根节点必须为<resources>
- <style>节点必须实现name节点,name值必须能够唯一标识该style文件
- <item>作为<style>的子节点存在,定义View或window的属性值,item的name指定该View属性的名称,型如:<item name="style property">value</item>其中value可以字符串、16进制颜色值、另外一个资源的引用,等等,都是根据具体的View属性来定
(继承了名为TextAppearance style的Medium属性)
- <resources>的每个<style>节点都会根据style的name属性值在编译时是转化到application的资源中去
- <style>节点的parent属性是可选的,表明该style需要从对应的style文件中继承特定的资源。你也可以覆盖该继承资源
- style文件可以用来定义某个view或者整个Activity,甚至是整个app的显示风格
3 继承style文件
3.1 用parent属性
parent属性能够完成一个style对于一个已存在(自定义或平台内置)的style,让后根据需要对父style的属性进行添删改,形成需要的style文件
(继承了名为TextAppearance的style所有属性)
3.2 用前缀表示法
- 如果你需要继承的style名为 parentStyleName,则可以将该style命名为parentStyleName.xxx表示该style继承于上一个style
- 此方法可以继承多个style,链式继承
- 注意:此方法只能用于自定义的style,不能用于平台内置style
4 style的属性
- style属性均来源于View的属性值,View的属性值可以直接在layout文件中定义,也可以抽离出来,统一在style中定义,在layout中引用,对于大量界面时,可以精简代码
- 不同View所有的属性不完全一样,如果View所引用的style中存在其不支持的属性,则该View应用其支持属性,忽略不支持属性
- 存在一些属性不应用于任何View,只是应用于Activity/Application,这些属性都是window开头
5 应用style或theme到UI界面
3.1 应用style到单个View
引用style在layout文件中,对于ViewGroup该style也只能作用于ViewGroup本身,不能够用于ViewGroup中的子组件
3.2 应用style到Activity或者App
- 一旦Activity或者app中引用style作为主题,那么该Activity或app中所有组件豆将遵循该style,只要View支持对应的属性都将应用,忽略不支持属性
- Activity与app均在
AndroidManifest.xml中定义
用内置theme
用自定义Theme
注意:color作为一个单独的资源存在,原因是windowBackground的值只能支持引用方式,而不能再item中直接给出颜色值
Styles and Themes的更多相关文章
- Android篇---Styles和Themes常见用法可能疑点小结
1.style和theme的区别: 简而言之,style指的就是安卓中一个UI控件的样式,而themes指的是安卓中一个activity界面或者整个安卓应用整体的样式.theme的范围比style的范 ...
- Styles and Themens(5)样式文件Style.xml中各元素的含义
Style Resource See also Styles and Themes A style resource defines the format and look for a UI. A s ...
- Android-Styles and Themes [From API Guide]
This blog was opened 5 months ago and it has 57 posts now,but the poor thing is by now no one has co ...
- Styles and Themens(3)android所有主题表
The Android platform provides a large collection of styles and themes that you can use in your appli ...
- Styles and Themens(1)详述
Styles and Themes IN THIS DOCUMENT Defining Styles Inheritance Style Properties Applying Styles and ...
- 转:看看 Delphi XE2 为 VCL 提供的 14 种样式
http://www.linuxso.com/linuxbiancheng/8889.html 其实只提供了 个 vsf 样式文件, 还有默认的 Windows 样式, 共 种. 在空白窗体上添加 L ...
- Android高手速成--第四部分 开发工具及测试工具
第四部分 开发工具及测试工具 主要介绍和Android开发工具和测试工具相关的开源项目. 一.开发效率工具 Json2Java根据JSon数据自动生成对应的Java实体类,还支持Parcel.Gson ...
- User interface
Styles and Themes value/style <style name="CodeFont" parent="@android:style/TextAp ...
- DateTimePicker如何与Delphi自带Style同步
Delphi 的 DateTimePicker 组件有一个CalColors属性,可以设置 DropDown 打开的日历节目的风格.但如果不使用 Delphi 自带的 Style,在这里设置属性看不到 ...
随机推荐
- aop aspect
所以“<aop:aspect>”实际上是定义横切逻辑,就是在连接点上做什么,“<aop:advisor>”则定义了在哪些连接点应用什么<aop:aspect>.Sp ...
- QT插件开发方式(作者有RemOjbects文档翻译(48)篇)
创建一个QT的库项目,删除自动生成的.h和.cpp文件,添加一个接口定义.h文件和一个接口实现类(一个.h一个.cpp).代码如下: 1.接口文件源码 #ifndef PLUGININTERFACE_ ...
- WPF之给使用了模板的MenuItem添加快捷操作
说在前面: WPF中给按钮或者是具备Command等元素实现快捷键其实是非常简单的,例子如下: <Button Content="_Test" Click="But ...
- 102. Binary Tree Level Order Traversal
题目: Given a binary tree, return the level order traversal of its nodes' values. (ie, from left to ri ...
- python函数--传参
一.位置参数 二.关键字参数 三.默认参数 四.任意数量的位置参数: 1. *x 2. 传入的多个参数,最终合并成一个元组 3. 之后的参数必须用关键字参数 五.任意数量的关键字参数 1. **x 2 ...
- GB2312 简体中文编码表
GB 2312中对所收汉字进行了“分区”处理,每区含有94个汉字/符号.这种表示方式也称为区位码. 01-09区为特殊符号. 16-55区为一级汉字,按拼音排序. 56-87区为二级汉字,按部首/笔画 ...
- 【转】Java多线程学习
来源:http://www.cnblogs.com/samzeng/p/3546084.html Java多线程学习总结--线程概述及创建线程的方式(1) 在Java开发中,多线程是很常用的,用得好的 ...
- poj1925Spiderman(dp)
链接 确实是破题 按复杂度估计怎么着也不能按坐标D 啊 网上的代码交上去还TLE 无语了 多次TLE之后终于看到一次WA..好高兴 以横坐标进行DP dp[j] = min(dp[j],dp[2*x ...
- 关于高斯消元解决xor问题的总结
我觉得xor这东西特别神奇,最神奇的就是这个性质了 A xor B xor B=A 这样就根本不用在意重复之类的问题了 关于xor的问题大家可以去膜拜莫队的<高斯消元解XOR方程组>,里面 ...
- php简单实现MVC
在PHP中使用MVC越来越流行了,特别是在一些开源的框架当中.MVC足以应对大多数的情况,但还有一些情况是其不太适合的,如比较简单的个人博客,对于只有几百篇文章量级的博客,使用MVC让人觉得有些太复杂 ...