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,在这里设置属性看不到 ...
随机推荐
- Android:ScaleType设置图片
设置例子:ImageViewId.setScaleType(ScaleType.CENTER); ScaleType:设置图片显示方式 效果预览:
- 202. Happy Number
题目: Write an algorithm to determine if a number is "happy". A happy number is a number def ...
- P59、面试题7:用两个栈实现队列
题目:用两个栈实现一个队列.队列声明如下,请实现它的两个函数appendTail和deleteHead,分别完成在队列为插入结点和在队列头部删除结点的功能. stack1专门用于插入数据,stack2 ...
- Ant build.xml 批量打渠道包回顾!打第三方jar包总结
配置: eclipse3.9 + ADT22 + sdk 4.0 eclipse带自动混淆的,不过只有在我们手动创建包的时候,才去打签名,去混淆! 开启混淆这样做吧! 必备文件3个: 当然进行ant打 ...
- 函数重载二义性:error C2668: 'pow' : ambiguous call to overloaded function
2013-07-08 14:42:45 当使用的函数时重载函数时,若编译器不能判断出是哪个函数,就会出现二义性,并给出报错信息. 问题描述: 在.cpp代码中用到pow函数,如下: long int ...
- Git教程(11)把本地的项目传到远程
1,在远程建立仓库 得到远程仓库地址,如: https://github.com/paulboone/ticgit 2,进入到项目根目录,初始化一个本地仓库 $ git init 3,为本地仓库添加 ...
- Maximum Allowed Error 7 错误解决
http://blog.csdn.net/lyx123/article/details/6238167 这段时间,一直在做WINCE 的应用,后来将NK做大后,必须修改EBOOT,以便能够提供较大的空 ...
- Windows Embedded Compact 2013升级:VS2013也能编译
IT之家(www.ithome.com):Windows Embedded Compact 2013升级:VS2013也能编译 今天,微软为Windows Embedded Compact 2013送 ...
- 函数flst_add_last
/********************************************************************//** Adds a node as the last no ...
- BZOJ3451: Tyvj1953 Normal
题解: 好神的一道题.蒟蒻只能膜拜题解. 考虑a对b的贡献,如果a是a-b路径上第一个删除的点,那么给b贡献1. 所以转化之后就是求sigma(1/dist(i,j)),orz!!! 如果不是分母的话 ...