`

Android 笔记 -- styles 和 themes

阅读更多

 
1.定义样式
  在工程的res/values目录下新加一个样式文件,文件名可以随意,但后缀是xml。 该文件的根节点是<resources>,然后每个式样有一个style节点。style结点有唯一标识名称,在style下面是item,标识了各个属性的样式值。

 <?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的节点都会在运行时,自动转变成resource对象,然后可以通过<style>的名称来引用。例如上面的样式可以这样引用:@style/CodeFont, 样式的parent属性是可选的,它可以指向一个已经定义好的style,并且在自定义的 style里的属性值会把parent的属性值覆盖掉。一个样式可以做为一个Activity的样式, 也可以做为一个Application的主题。
 
2.样式的继承
  一个样式可以继承平台原有的样式,也可以继承自定义的样式。
  继承平台原有的样式如下(一定要在parent里指定):

<style name="GreenText" parent="@android:style/TextAppearance">
        <item name="android:textColor">#00FF00</item>
  </style>

 
  继承自定义的样式如下(可以不采用parent属性):
  这种方式只要在style的name属性上加一个前缀就可以了。前缀名是自定义的那个style的名称,例如继承CodeFont的式样可以这样写:

<style name="CodeFont.Red">
        <item name="android:textColor">#FF0000</item>
    </style>

 
  这种继承方式还可以不断继承下去:

<style name="CodeFont.Red.Big">
        <item name="android:textSize">30sp</item>
    </style>

 
具体一个style的item有哪些name呢?这个可以参考一个View的xml有哪些属性。所有的XML属性(XML Attributes)都可以在item中使用。对于所有可以引用的style属性,可以参考R.attr。并不是所有的View对象都会有相同的style 属性,但是如果给一个View使用了它不支持的属性后,该View只会对它支持的属性生效,其它的会被忽略。
 
3.使用Styles 和 Themes

  在View中使用

 

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

 在application中使用

 

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

 内置的styles 和 themes 

 

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

 可以在R.style类下面找到所有的内置style和themes。使用时要把style或themes的名称下划线改为点。  比如Theme_NoTitleBar 在使用时改为"@android:style/Theme.NoTitleBar"。

在Activity中使用

 

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

 

 

分享到:
评论

相关推荐

    geany-themes-master.zip

    总的来说,"geany-themes-master.zip"是一个丰富的Geany主题资源库,它提供了多种预设主题,让用户可以轻松地调整编辑器的外观,以提高编程效率和舒适度。通过对主题的了解和自定义,我们可以打造出个性化的Geany...

    Stylish-Custom-themes-for-any-website_v1.8.3.rar

    标题 "Stylish-Custom-themes-for-any-website_v1.8.3.rar" 提供了一个关于自定义网站主题的扩展程序,版本为1.8.3。这个扩展程序允许用户为他们访问的任何网站定制样式,从而改变浏览器的视觉体验。其中,“Stylish...

    Gnome-OSC-HS--2-themes.zip

    Gnome-OSC-HS--2-themes,包含Gnome-OSC-HS-(transparent)和Gnome-OSC-HS-(transparent),用于Ubuntu 18.04,仿mac风格,直接放入/usr/share/themes下就可以了使用

    google 社区 jquery-ui-themes-1.8.12.zip

    首先,"jquery-ui-themes-1.8.12.zip"是Google社区分享的一个jQuery UI主题资源包,它包含了多个预设的UI主题,这些主题都是为了使jQuery UI组件的外观和感觉更加统一和专业。1.8.12是该版本的特定迭代,可能包含了...

    grub2-themes-master.zip

    "grub2-themes-master"这个项目提供的主题通常包含配置文件、图像资源以及安装和应用主题的脚本。通过这些主题,即使是对Linux不太熟悉的用户也能轻松地改变GRUB2的外观,因为它们通常会提供简单的可视化安装步骤。 ...

    jquery-ui-themes-1.8.22.zip

    本文将深入探讨“jquery-ui-themes-1.8.22.zip”这一压缩包,揭示其中包含的资源和使用方法,帮助开发者更好地理解和应用jQuery UI。 首先,让我们理解“jquery-ui-themes-1.8.22.zip”的结构。这个压缩包是jQuery ...

    jquery-ui-themes-1.9.1.zip

    jQuery UI Themes 1.9.1,作为一款广泛使用的开源组件库,为开发者提供了丰富的样式主题和功能组件,使得构建美观、易用的网页变得更加便捷。这款官方版的jQuery UI Themes 1.9.1不仅功能强大,而且易于获取和使用,...

    jquery-easyui-themes

    jquery-easyui-themes,easyui主题包,包含metro-blue metro-gray metro-green metro-orange metro-red ui-cupertino ui-dark-hive ui-pepper-grinder ui-sunny这些主题,具体的php使用方式见:...

    Android代码-android-resource-navigator

    Android Resource Navigator A Google Chrome Extension providing enhanced resource navigation...Quickly open the Android framework styles or themes XML via an always available browser action button. Frame

    jquery-easyui-themes.rar_easyui 主题_easyui主题_html_jquery_jquery-e

    《jQuery EasyUI 主题详解与应用》 jQuery EasyUI 是一款基于 jQuery 的前端...通过对"jquery-easyui-themes.rar"中的主题资源进行灵活运用,开发者可以打造出具有独特风格的Web应用,提升产品的吸引力和用户体验。

    Android代码-FolioReader-Android

    FolioReader-Android is an ePub reader and parser framework written in Java. Features [x] Custom Fonts [x] Custom Text Size [x] Themes / Day mode / Night mode [x] Text Highlighting [x] List / Edit / ...

    jquery-ui-themes-1.12.1.zip

    这个名为"jquery-ui-themes-1.12.1.zip"的压缩包包含的是jQuery UI的1.12.1版本的主题资源,旨在帮助开发者创建符合最新设计趋势的、具有高度可定制性的界面。 jQuery UI 提供了多种预设主题,这些主题可以在压缩包...

    新版Android开发教程 笔记7--基础UI编程1

    6. **主题和样式(Themes & Styles)**: 主题和样式是保持应用UI一致性的重要工具。通过定义全局的主题,可以统一改变所有视图的外观,而样式则可以针对特定的视图设置外观属性。 7. **动态添加和移除视图**: ...

    gedit-themes-master.zip

    gedit-themes-master.zip是一个包含多种gedit编辑器主题的压缩包文件,它为用户提供了个性化和美化gedit编辑器界面的机会。gedit是一款轻量级、功能丰富的文本编辑器,广泛应用于Linux操作系统中,是GNOME桌面环境的...

    Gnome-OSC-HS--2-themes.tar.xz

    Gnome-OSC-HS--2-themes.tar.xz ubuntu18.04 仿 mac 主题

    geany-themes-0.21

    总结起来,"geany-themes-0.21"是Geany用户丰富和定制其编程环境的宝贵资源。通过这些精心设计的配色方案,用户不仅可以根据个人喜好调整代码的视觉呈现,还可以提高编程的舒适度和效率。无论你是Python新手还是经验...

    putty-color-themes-master.zip

    PuTTY是一个Telnet、SSH、rlogin、纯TCP以及串行接口连接软件。较早的版本仅支持Windows平台,在最近...Putty是一个免费的、Windows x86平台下的Telnet、SSH和rlogin客户端,但是功能丝毫不逊色于商业的Telnet类工具。

    Android代码-bubble-navigation

    6. **样式和主题**(Styles and Themes):为了保持应用的整体视觉一致性, Bubble Navigation的样式和颜色可能会在应用程序的主题中定义。这可能涉及到颜色资源文件和自定义样式。 7. **示例应用**(Sample App)...

    wordpress手机主题(wp-mobile-themes)

    这个压缩包“wp-mobile-themes”可能包含了多个不同的移动主题,每个主题都有独特的设计和功能。安装这些主题通常非常简单,只需要在WordPress后台的主题管理界面上传并激活即可。用户在选择主题时,应考虑以下几点...

Global site tag (gtag.js) - Google Analytics