Android中文翻译 - Styles and themes (样式和主题)

本文翻译自:https://developer.android.com/guide/topics/ui/themes.html

Style和theme词汇是专用术语,下文直接使用而不翻译。

样式和主题(Styles and Themes)

一个样式(Style)是一个包含了指定样子和格式的作用于视图控件(View)或者窗体(Window)属性集合。一个style可以指定很多属性,比如 高度,填充,字体颜色,字体尺寸,背景色等。一个Style在xml资源文件中定义,并且和在xml中指定的布局区分开来。

在Android里的样式和Web设计中的CSS共享一个相似的原理,它们允许你分离设计(Design)和内容(Content).

举个例子,通过使用一个style,你可以让你的布局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" />

所有关联到style的属性已经在布局xml中被删除了,并且放在一个叫做“CodeFont”style中定义了。它通过一个style属性被应用上。在下面的章节,你将会看到如何定义style。

一个主题(Theme)也是一个style,它被应用在所有的Activity或者application上,而不是个别的视图控件(View)(像上面的示例一样)。当一个style被当做一个theme来应用,每一个activity或者application中的视图控件将应用每一个它支持的样式属性。比如,你可以在activity上使用相同的CodeFont样式作为一个theme,这时Activity里的所有内部字体将会变成CodeFont样式的字体样式变成绿色的等宽字体。

定义一个样式Style

为了创建一些样式,你可以保存在你的工程下的 res/Values/ 文件夹下的一个XML文件中。XML文件的名字是随意的,但是必须扩展名是 .xml 并且存放在 res/Values/ 文件夹下。

XML文件的根节点必须是<resources>

为你创建的每个样式,添加一个<style>元素,并且需要一个name  属性,它标识唯一性而且是必需的属性。再为你的样式属性都添加进去,通过添加<item>元素来做,使用一个在样式属性里声明的name属性和一个value属性,这两个都是必需的。<item>的value属性可以是一个关键字字符串,一个16进制的颜色描述,一个其他资源类型的引用,或者在其他样式属性中依赖的value。下面是一个简单的示例样式文件内容:

<?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>元素的子节点在编译时都被转换成一个程序资源对象。它可以通过<style>元素的name属性的值(value)来被引用引用。这个示例样式可以在XML布局中被引用,比如“@style/CodeFont”(像上面介绍的示例一样)。

在<style>元素中的parent属性是可选的并且指向一个其他样式中的资源ID,它可以从这个样式中继承一些属性。合适的话,你可以重写(override)继承到的属性。

记住,一个你想在activity或者application中使用的样式都被在XML文件中定义,并且所有的视图控件具有相同的样式。一个样式,比如上面定义的那个,可以被作为一style应用的单一的视图控件上或者被作为一个theme应用在全部的activity或者application上。如何应用的单一的视图或者作为应用的主题,我们稍后讨论。

时间: 2024-09-29 10:03:55

Android中文翻译 - Styles and themes (样式和主题)的相关文章

Android中文翻译 - 主题(themes )介绍

译者注:theme(主题)和style(样式)是专用术语,下面对这两个词汇不在使用中文词汇. theme 是安卓的一种机制,用于为应用程序和activity提供一致的样式(style).样式style规范了组成用户图形接口的一些元素的可视化属性.比如颜色( color),高度,填充,字体尺寸.为了在平台中所有的APP应用之间,提供比较大的结合性.安卓提供了两个系统主题样式,这样当你构建应用时就可以选择: Holo Light Holo Dark 在帮助你构建APP时应用这些主题,适应普遍的安卓可

Android 中文翻译:Build System Overview

Andrioid 编译系统是你用于build,test,runapp的工具箱.编译系统的运行,可以通过Android Studio的菜单或者是独立的命令行.通过编译系统的特性你可以做以下的事情: (1)      自定义,配置,扩展编译进程. (2)      用同一个project and modules创建拥有不同特性的apk. (3)      通过来源设置重用代码和资源. Android编译系统的自由性,能够在不修改您应用程序的核心源文件的基础上实现您想要的一切. 如何使用Android

android api 指南-Styles and Themes

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

Android中文翻译 - Adding the Action Bar 添加活动栏(action bar)

2014-10-28 张云飞VIR 翻译自:https://developer.android.com/training/basics/actionbar/index.html 添加活动栏(Adding the Action Bar) 译者注:我找不到更好的词汇翻译action bar,虽然我也认为 活动栏 不是个好的翻译,但总要有个中文名字.不过为了方便识别,本文仍继续使用英文的actionbar 活动栏action bar 是非常重要的设计元素之一,你可以为你的app中的activity来实

Android中文翻译 - Iconography 图标设计概述

2014-10-30 张云飞VIR 翻译自:https://developer.android.com/design/style/iconography.html Iconography 图标设计概述 一个图标是一个图像,它占据了一小部分屏幕不动产.并且为一个活动(action),状态(status),或者一个app提供了一个快速,直观的程序. 当你为你的app设计图标时,重要的需要留下的是,你的app可能被安装在那些提供一个范围的像素密度的多种设备中,就像  Devices and Displ

Android中文翻译 - Building Your First App 构建你的第一个应用

本文翻译自:https://developer.android.com/training/basics/firstapp/index.html 构建你的第一个应用(app) 欢迎来到安卓开发! 这个类别教你如何构建你的第一个应用.你讲会学到如何去创建一个安卓工程和启动一个可以调试的应用的版本.你将会学到一些安卓设计的基础,包括如何构建一个简单的用户界面和处理用户输入. 在你开始这个类别之前,确保你已经有了安卓开发环境并设置好,你需要: 1.下载安卓开发包(Android SDK) 2.为你的Ec

Android中文翻译 - AbstractAccountAuthenticator概述

我顺带把AbstractAccountAuthenticator  也翻译了,感觉直接看SampleSyncAdapter例子很难快速明白整体的意图,配合api是个好的方式,感叹android的api这是太详细了. AbstractAccountAuthenticator 概述 AbstractAccountAuthenticator 概述 这是一个抽象的基类,用于创建账户管理器(AccountAuthenticators).为了成为一 个 认证器,一个类必须继承该类,提供抽象方法的实现,并且写

Android中文翻译 - NFC基础

NFC 基础 本文档介绍了在Android上的基本的NFC任务.它说明了如何发送和接收的NDEF消息(NDEF messages)的形式的表单里包含的NFC数据(NFC data),并介绍Android框架里支持这些功能的API.对于更高级的主题,包括与非NDEF数据的讨论,请参阅高级NFC. 当使用NDEF 数据和Android时,有两个主要的使用场景: •从一个NFC 标签里读取NDEF 数据 •使用 Android Beam™ 快速传输Beaming NDEF messages从一台设备到

Android中文翻译 - AccountManager概述

为了理解,我翻译了AccountManager类的概述部分.转载请注明出处:http://www.cnblogs.com/vir56k/p/4025722.html AccountManager概述 这个类提供了访问到 用户在线账户的集中式注册中心 的能力.用户为每账户输入一次 认证信息(credentials,包含用户名和密码),过过 点击一次(one-click)完成认证的方式,授权应用程序(app)访问 在线的资源.不同的服务具有不同的处理账户的认证的方式,而 Account Manage