WEB开发网
开发学院手机开发Android 开发 Applying Styles and Themes - 应用Style和Theme ... 阅读

Applying Styles and Themes - 应用Style和Theme - Android官方文档中文翻译

 2011-01-11 06:59:21 来源:WEB开发网   
核心提示:然而,一些style属性只能被当作一个theme来应用,Applying Styles and Themes - 应用Style和Theme - Android官方文档中文翻译(3),而不受任何View元素的支持,例如那些用于隐藏应用程序标题、隐藏状态栏、或改变window的背景的style属性,没有透彻叙述这些sty

然而,一些style属性只能被当作一个theme来应用,而不受任何View元素的支持。例如那些用于隐藏应用程序标题、隐藏状态栏、或改变window的背景的style属性。这些style属性不属于任何View对象。想探究这些仅应用作theme的style属性,参见R.attr中那些以window开头的属性。举个例子,windowNoTitle和windowBackground是仅当style作为theme应用于一个Activity或应用程序时才有效的style属性。参见下一节以获得关于将一个style应用作一个theme的信息。

注意: 不要忘记对每个< item>元素中的属性冠以android: 命名空间前缀。例如:< item name="android:inputType">.

为UI应用Style和Theme

有两种方式设置一个style:

· 对一个独立的View,添加style属性到你的布局XML中的View元素中。

· 或者,对一个Activity或应用程序 添加android:theme 属性到Android manifest 的< activity>或< application>元素中。

当你应用一个style到布局中一个单独的View上,由此style定义的属性会仅应用于那个View。如果一个style应用到一个ViewGroup上,那么子View元素并不会继承应用此style属性——仅有你直接应用了style的元素才会应用其属性。然而,你可以通过将其作为theme来应用的方式应用一个style到所有View元素上。

为将一个style作为一个theme来应用,你必须在Android manifest中将其应用到一个Activity或应用程序。当你这样做,此Activity或应用程序中的每个View都将应用其所支持的属性。例如,如果你应用前面示例中的CodeFont style到一个Activity,那么支持此文本style属性的所有View元素都将应用它们。任何View所不支持的属性将被忽略。如果一个View仅支持某些属性,那么它就只应用那些属性。

为View应用一个style

下面是如何在布局XML中为View设置style的方法:

< TextView

style="@style/CodeFont"

android:text="@string/hello" />

此时TextView将应用由名为CodeFont的style所定义的属性。(参见前面定义Styles中的示例。)

注意: style属性不使用android: 命名空间前缀。

为Activity或应用程序应用一个theme

为对你的应用程序中所有activity设置一个theme,请打开AndroidManifest.xml文件并编辑< application>标签,使之包含android:theme属性和style名称。例如:

< application android:theme="@style/CustomTheme">

If you want a theme applied to just one Activity in your application, then add the android:theme attribute to the < activity> tag instead.

如果你希望theme仅仅应用到你的应用程序中的某个Activity上,那么就将android:theme属性添加到< activity>标签中。

正像Android提供的其他内建资源一样,有许多你可以使用的预定义theme ,而不用自己编写它们。例如,你可以使用Dialog theme使你的Activity变得像一个对话框:

< activity android:theme="@android:style/Theme.Dialog">

或者你想让背景变成透明的,那就使用透明主题:

< activity android:theme="@android:style/Theme.Translucent">

如果你想使用一个theme,但也想调整它,那么你可以将其作为你的自定义theme的parent。例如,你可以修改传统的对话框theme来使用你自己的背景图像:

< style name="CustomDialogTheme" parent="@android:style/Theme.Dialog">

< item name="android:windowBackground">@drawable/custom_dialog_background< /item>

< /style>

然后在Android Manifest中使用CustomDialogTheme代替Theme.Dialog:

< activity android:theme="@style/CustomDialogTheme">

使用平台Style和Theme

Android平台提供了大量的style和theme供你在你的应用程序中使用。你可以在R.style类中找到所有可用的style。要使用这些style,用句号替换style名称中的下划线。例如,你可以通过"@android:style/Theme.NoTitleBar"应用Theme_NoTitleBar theme。

然而,R.style没有好的文档,没有透彻叙述这些style,所以查看这些style和theme的实际源代码将使你更好理解每个style属性提供了什么功能。为更好参考Android的style和theme,参见下列源代码:

· Android Styles (styles.xml)

上一页  1 2 3 

Tags:Applying Styles Themes

编辑录入:coldstar [复制链接] [打 印]
赞助商链接