`
viluo
  • 浏览: 27428 次
  • 性别: Icon_minigender_1
  • 来自: 上海
文章分类
社区版块
存档分类
最新评论

Android中Theme和Style的应用

阅读更多

那什么是theme和style呢?

 

Style:是一个包含一种或者多种格式化属性的集合,我们可以将其用为一个单位用在布局XML单个元素当中。比如,我们可以定义一种风格来定义文本的字号大小和颜色,然后将其用在View元素的一个特定的实例。

 

Theme: 是一个包含一种或者多种格式化属性的集合,我们可以将其为一个单位用在应用中所有的Activity当中或者应用中的某个Activity当中。比如,我 们可以定义一个Theme,它为window frame和panel 的前景和背景定义了一组颜色,并为菜单定义可文字的大小和颜色属性,可以将这个Theme应用在你程序当中所有的Activity里。

 

那如何新建自定义的风格和主题?

 

1.在res/values 目录下新建一个名叫style.xml的文件。增加一个<resources>根节点。

 

2.对每一个风格和主题,给<style>element增加一个全局唯一的名字,也可以选择增加一个父类属性。在后边我们可以用这个名字来应用风格,而父类属性标识了当前风格是继承于哪个风格。

 

3.在<style>元素内部,申明一个或者多个<item>,每一个<item>定义了一个名字属性,并且在元素内部定义了这个风格的值。

 

4.你可以应用在其他XML定义的资源。

说明一下,如果需要继承其他样式,可以使用parent属性来指定。引用其他样式表,如果是应用系统的,需要用android:style/(其实 只写android即可,不过为了好看,最好还是这么写)打头,如果是自己定义的样式,用style/打头。继承时也一样。至于是用"@"还是"?",@ 符号表明了我们应用的资源是前边定义过的(或者在前一个项目中或者在Android 框架中)。问号?表明了我们引用的资源的值在当前的主题当中定义过。

 

例如下面的样式例子:

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <style name="SpecialText" parent="@style/Text">
        <item name="android:textSize">18sp</item>
        <item name="android:textColor">#008</item>
    </style>
</resources>

 

那么如何使用呢?

<EditText id="@+id/text1"
style="@style/SpecialText"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="Hello, World!" />

 

如果是使用主题呢?

<activity android:name=".About"
         android:label="@string/about_title"
         android:theme="@android:style/Theme.Dialog">
</activity>

 

如何在程序当中设置主题呢?

 

如果需要的话,你可以在Activity当中通过使用方法setTheme()来加载一个主题。注意,如果你这么做 的话,你应该初始化任何View之前设置主题。比如,在调用setContentView(View) 和inflate(int, ViewGroup)方法前。这保证系统将当前主题应用在所有的UI界面。例子如下:

protected void onCreate(Bundle savedInstanceState) {
      super.onCreate(savedInstanceState);
      …
      setTheme(android.R.style.Theme_Light);
      setContentView(R.layout.linear_layout_3);
}

 

如果你打算在程序代码中来加载主界面的主题,那么需要注意主题当中不能包括任何系统启动这个Activity所使用的动画,这些动画将在程序启动前显示。在很多情况下,如果你想将主题应用到你的主界面,在XML中定义似乎是一个更好的办法。

分享到:
评论

相关推荐

    Android Style\\Theme动态切换

    这篇博客“Android Style\\Theme动态切换”可能探讨了如何在Android应用程序中实现实时改变主题和样式的技巧。 首先,我们需要理解Android中的Theme和Style的基本概念。Theme是全局的,通常应用于整个应用程序或...

    android_UI进阶之style和theme的使用

    Android_UI进阶之style和theme的使用 Android 中的样式(style)和主题...style和theme都是Android提供的资源,开发者可以使用它们来美化自己的应用程序。style是针对view的,而theme是针对整个Activity或整个程序的。

    Android UI中的style和theme以及AlertDialog

    在Android UI设计中,style和theme是两个至关重要的概念,它们极大地增强了应用界面的统一性和可维护性。这篇博文将深入探讨这两个主题,并通过具体的示例来解释它们的工作原理。 首先,我们来看`style`(样式)。...

    Activity_Theme_Style.rar_activity theme_android

    在"Activity_Theme_Style.rar_activity theme_android"这个压缩包中,包含的资源可能是一个关于如何自定义和应用Android Activity主题的教程。 首先,我们来了解一下Android中的主题系统。Android提供了预定义的...

    android theme 皮肤主题 的应用

    在Android操作系统中,主题(Theme)是用户界面的重要组成部分,它定义了应用程序的整体视觉样式,包括颜色、字体、布局和图标的外观等。通过自定义主题,开发者可以为用户提供独特的体验,增强应用的品牌识别度。...

    android style and theme

    在Android开发中,为了提高UI设计的效率并保持界面的一致性,开发者通常会利用**Style**和**Theme**两个概念来实现统一的设计规范。本文将详细介绍这两个概念,并通过实例展示它们在实际项目中的运用。 #### 二、...

    Android应用源码之theme.zip

    可能会有一个&lt;style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar"&gt;,这表示"AppTheme"主题继承自"Theme.AppCompat.Light.DarkActionBar",这是一个常见的Android支持库提供的主题,包含轻量级背景...

    Androidstudio theme 主题

    在Android开发中,主题主要通过两种方式实现:style.xml文件和AndroidManifest.xml中的application标签。style.xml位于res/values目录下,是定义自定义风格和主题的主要场所。在这里,你可以定义一个或多个&lt;style&gt;...

    Android 使用Font和style定义App全局字体样式

    通过以上步骤,你已经学会了如何在Android应用中使用`Font`和`style`定义全局字体样式。这种方式不仅使代码更整洁,而且方便在不修改大量代码的情况下调整字体样式,提高了应用的可维护性和灵活性。在实际项目中,...

    Style和Theme

    Style和Theme在Android中的应用 在Android开发中,Style和Theme是两个非常重要的概念,它们被广泛应用于UI设计中。下面,我们将详细讲述Style和Theme的区别和使用方法,并提供实践中的示例代码。 Style Style是...

    Android应用源码之style.zip

    "Android应用源码之style.zip"提供的源码资源显然与Android应用中的自定义风格设置有关。下面我们将深入探讨Android应用中风格的使用及其重要性。 1. **什么是Android风格(Style)**: - 风格是XML文件中定义的一...

    Android Theme和Styles内部定义解析.txt

    - 在Android应用中,主题通常通过在`AndroidManifest.xml`文件中为整个应用或某个Activity指定一个主题来设置。 - 主题可以通过继承的方式来扩展默认的主题,例如`Theme.AppCompat.Light`。 - 开发者可以在`res/...

    Android改Theme实现夜间模式

    Theme是Android应用的全局样式,它定义了应用的整体外观和感觉,包括颜色、字体、布局等元素。我们可以创建自定义Theme,并在运行时动态切换,从而实现夜间模式和日间模式之间的切换。 1. 创建自定义Theme: 在`...

    Android代码-theme简单使用示例.zip

    在Android开发中,主题(Theme)是一个至关重要的概念,它为整个应用程序或应用程序中的特定组件提供了统一的视觉样式。主题可以定义颜色、字体、图标以及其他界面元素的外观,从而实现一致性和品牌识别度。本示例将...

    Android应用源码之style1.zip

    通过分析这个压缩包中的文件,我们可以深入了解如何创建和应用自定义风格到Android应用中。 首先,风格在Android中主要通过XML文件定义,通常位于`res/values`目录下的`styles.xml`文件。在`style1.zip`中,我们...

    android 主题(Theme)实现

    在Android开发中,主题(Theme)是应用全局样式和外观的重要组成部分。它们允许开发者通过一套统一的视觉风格来定制应用程序的界面元素,如颜色、字体、控件样式等,而无需在每个单独的Activity或布局文件中进行重复...

    android change style

    本篇文章将深入探讨如何在Android应用中动态地改变Style,以及Theme与Style的区别。 首先,让我们了解什么是Theme和Style。在Android中,Theme是一种全局样式,它应用于整个应用程序或特定的Activity。通过设置`...

    Android_样式(style)&主题(theme)&显示单位

    在Android开发中,样式(style)和主题(theme)是两个关键的概念,它们用来统一和管理应用程序的视觉表现。样式可以看作是一组预定义的属性集合,用于控制UI组件的外观,比如字体颜色、大小、背景等。而主题则是...

    android.support.v7包,支持Theme.AppCompat.Light.NoActionBar, AppCompatActivity

    在实际应用中,为了使用`AppCompatActivity`,我们需要在AndroidManifest.xml文件中将Activity的父类设置为`AppCompatActivity`,如下所示: ```xml &lt;activity android:name=".YourActivity" android:theme="@style...

    Android style简单学习应用示例.rar

    "Android style简单学习应用示例"是一个专为初学者设计的项目,旨在帮助开发者理解如何在Android应用中定义和使用样式。这个源码资源包含了一个简单的Android应用,你可以通过下载解压后进行参考学习。 首先,样式...

Global site tag (gtag.js) - Google Analytics