码迷,mamicode.com
首页 > 移动开发 > 详细

android api 指南-Styles and Themes

时间:2015-09-26 23:57:20      阅读:349      评论:0      收藏:0      [点我收藏+]

标签:

  style是一些属性值得集合,这些属性值用来指定一个view 或者 window 的外观和格式。style可以只指定height,padding,font color,font size,background color,和很多其他属性。style 定义在xml资源文件中,与layout xml 文件独立开的。android中的style与web中的css有相似的设计哲学-允许设计样式和内容的分离。

  例如,使用style,你可以将这样的 layout XML:

<TextView
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:textColor="#00FF00"
    android:typeface="monospace"
    android:text="@string/hello"/>

 转换如下的代码:

<TextView
    style="@style/CodeFont"
    android:text="@string/hello" />

  所有与样式相关的属性都从layout XML 中移除了,放入了一个叫CodeFont的style中了,这个style被控件的样式属性中引用了。你可以在接下来的部分看到这个style。

  theme 是被整个 activity 或者app,而不是单个view(就像上面的例子)引用的style。当一个style被用作theme时,所有style指定的属性并且被activity或者app中的每个view所支持的属性,将会被引用。例如,你可以应用像CodeFont这样的style作为theme到一个Activity中,然后Activity中所有的文字都会变成green monospace字体。

定义 Style

  你只需要将XML文件保存在项目的res/values/目录下,就可以创建style。XML文件的名字是任意指定的,但是文件的拓展名必须是.xml 并且必须被保存在res/values/文件夹下。

  在文件中添加<style>元素,所有的style中的name属性是style的唯一的标识(这个属性是必须的)。接着为每个style的所指定的属性添加一个<item>元素,元素的name用来声明你想定义的style属性,同时给出属性的值(值是必须的)。item的值可以是一个有特殊含义的字符串,一个十六进制的颜色值,其他资源类型的引用,或者style属性相关的值。下面是单个style文件的例子:

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <style name="CodeFont" parent="@android:style/TextAppearance.Medium">
        <item name="android:layout_width">fill_parent</item>
        <item name="android:layout_height">wrap_content</item>
        <item name="android:textColor">#00FF00</item>
        <item name="android:typeface">monospace</item>
    </style>
</resources>

  在编译时,<resources>的所有子元素都被转换为一个app的资源对象,可以使用在<style>元素定义的name值引用这个对象。例子里面的style能够在一个XML布局文件里面用 @style/CodeFont来引用(示例在上面的介绍中)。

  <style>元素的parent属性是可选的,用来指定继承自其它资源ID中的样式。如果需要你也可以在<style>中覆盖继承来的样式。

  注意,在Activity或者app中使用的style和为view定义的style在XML文件中的定义是完全一样的。例如上面例子中的style可以定义单个View的样式或者在Activity和app中用作theme。我们将在后面讨论如何使用style来定义单个style的样式或者用作app的theme。

(翻译整理自https://developer.android.com/intl/zh-cn/guide/topics/ui/themes.html#DefiningStyles

android api 指南-Styles and Themes

标签:

原文地址:http://www.cnblogs.com/fooler/p/4841564.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!