1.theme和style都是一组属性的集合,用于定义文本、颜色、大小等显示风格。他们都是资源,可以用android系统级别的一些默认的风格和主题资源,你也可以自定义你自己的主题和风格资源。

2.自定义style

 <resources>
<style name="CustomTheme">
<item name="android:windowNoTitle">true</item>
<item name="windowFrame">@drawable/screen_frame</item>
<item name="windowBackground">@drawable/screen_background_white</item>
<item name="panelForegroundColor">#FF000000</item>
<item name="panelBackgroundColor">#FFFFFFFF</item>
<item name="panelTextColor">?panelForegroundColor</item>
<item name="panelTextSize">14</item>
<item name="menuItemTextColor">?panelTextColor</item>
<item name="menuItemTextSize">?panelTextSize</item>
</style>
</resources>

注意:@符号表明了我们应用的资源是前边定义过的(或者在前一个项目中或者在Android 框架中)。?符号表明了我们引用的资源的值在当前的主题当中定义过。通过引用在<item>里边定义的名字可以找到(panelTextColor 用的颜色和panelForegroundColor中定义的一样)。这中技巧只能用在XML资源当中。

3.自定义Style(2)

    <style name="AppBaseTheme" parent="android:Theme"></style>

    <style name="AppTheme" parent="AppBaseTheme">
<item name="android:textSize">50sp</item>
</style> <style name="AppTheme.Test" parent="android:Theme.Light">
<item name="android:textColor">#ff0000</item>
</style> <style name="AppTheme.Test.Blue">
<item name="android:textColor">#0000ff</item>
</style> <style name="AppTheme.Test.Blue.New">
<item name="android:textColor">#0000ff</item>
<item name="android:textSize">30sp</item>
</style>

  parent字段标明改style从哪种style继承过来,然后我们就可以在该style 内复写父style中的一些风格,比如字体、颜色etc。

  以下有几点要注意一下:

    1.第三种style是通过A.B这样的形式定义的,这是继承的另外一种简易的写法。但只要有parent属性,那么parent会完全覆盖A的所有属性,即A写不写都是一样的,该自

     定义style 不会从A继承到任何风格,这里用上面的例子运行一下就可以看出来;

    2.如果自定义的style没有parent属性,那么style的name中的A部分可以不写,这表明这是我们自定义的style,但是如果用简易的写法来写,而且又不想写parent的话

那么A必须是声明过的,否则会报错“A主题找不到”;

    3.简易的写法支持多继承。

3.接下来我们就可以在manifest中,或者指定的空间直接使用我们自定义的style 了。

  

android 中theme和style的语法相关的更多相关文章

  1. android 中theme.xml与style.xml的区别

    from://http://liangoogle.iteye.com/blog/1848448 android 中theme.xml与style.xml的区别: 相同点: 两者的定义相同. <r ...

  2. Android中theme.xml与style.xml的区别

    一.相同点 两者的定义相同.继承方式也相同 <?xml version="1.0" encoding="utf-8"?> <resources ...

  3. android中SELINUX规则分析和语法简介【转】

    本文转载自:https://blog.csdn.net/LoongEmbedded/article/details/62430039 1. SELINUX是可以理解为一种Android上面的安全机制, ...

  4. android中SELINUX规则分析和语法简介

    1. SELINUX是可以理解为一种android上面的安全机制,是有美国国家安全局和一些公司设计的一个针对linux的安全加强系统我们可以通过配置SELINUX的相关policy,来定制自己的手机的 ...

  5. 正确使用 Android 的 Theme 和 Style

    原文:http://www.tuicool.com/articles/ZjEZFj Android 5.0 可以给一个 View 单独设置一个 theme 了,其主要用途就是用在 ToolBar 上, ...

  6. android 中theme样式的解释

    android:theme="@android:style/Theme.Dialog" : Activity显示为对话框模式 android:theme="@androi ...

  7. Android中Bitmap和Drawable,等相关内容

    一.相关概念 1.Drawable就是一个可画的对象,其可能是一张位图(BitmapDrawable),也可能是一个图形(ShapeDrawable),还有可能是一个图层(LayerDrawable) ...

  8. Android开发之Theme、Style探索及源码浅析

    1 背景 前段时间群里有伙伴问到了关于Android开发中Theme与Style的问题,当然,这类东西在网上随便一搜一大把模板,所以关于怎么用的问题我想这里也就不做太多的说明了,我们这里把重点放在理解 ...

  9. Android中解析JSON形式的数据

    1.JSON(JavaScript Object Notation) 定义: 一种轻量级的数据交换格式,具有良好的可读和便于快速编写的特性.业内主流技术为其提供了完整的解决方案(有点类似于正则表达式, ...

随机推荐

  1. docker-registry 搭建私有仓库服务器

    我使用了两个虚拟机: 1)Ubuntu是服务器ip:192.168.84.128 2)centos是客户端ip:192.168.84.129 1.在服务端下载registry镜像  docker pu ...

  2. Pycharm快捷方式

    PYCHARM的快捷方式 PyCharm3.0默认快捷键(翻译的)1.编辑(Editing)Ctrl + Space 基本的代码完成(类.方法.属性)Ctrl + Alt + Space 快速导入任意 ...

  3. "$cond"

    db.items.aggregate([ { "$project": { "name": 1, "customfield": { " ...

  4. Bootstrap<基础十一>字体图标(Glyphicons)

    字体图标(Glyphicons),并通过一些实例了解它的使用.Bootstrap 捆绑了 200 多种字体格式的字形. 获取字体图标 我们已经在 环境安装 章节下载了 Bootstrap 3.x 版本 ...

  5. MAC与windows下打开当前文件路径的命令行(终端)

    MAC 下文件夹与终端: 1.打开当前路径的终端窗口方法: ①直接拖动要打开的文件夹到终端 ②打开finder的服务偏好设置, 勾选"新建位于文件夹位置的终端"选项, 以后可以在文 ...

  6. python2.7安装scikit-learn遇到的问题及解决方法

    安装完matplotlib后,在运行scikit-learn相关的库的时候又遇到缺包的问题,本来以为缺什么包就装什么包,但是由于种种原因,使我走上了弯路: 第一个坑:学校校园网限制.我用scikit- ...

  7. hihoCoder#1000

    刚开始学习C语言,准备在做hiho的题目的过程中来学习,在此进行记录,如果代码中有错误或者不当的地方还请指正.   时间限制:1000ms 单点时限:1000ms 内存限制:256MB 描述 求两个整 ...

  8. linux密码的更改

    找到UTF-8,在后面空格后输入init=/bin/sh  然后CHRL+X启动 进入到这个界面,输入mount -o remount,rw / 再输入touch / .autorelabel ,然后 ...

  9. Java Base64 类

    package org.yp.ypfinancing.core.service.payV2.domain.service.Sdp.utils; public final class Base64 { ...

  10. 数据类型int、bigint、smallint 和 tinyint范围

      bigint 从 -2^63 (-9223372036854775808) 到 2^63-1 (9223372036854775807) 的整型数据(所有数字).存储大小为 8 个字节. int ...