Style个人理解就是view的一些属性的集合,那么一系列view(例如TextVIew),只要是要该style那么就都有相同的内容,如 文字的大少,颜色等,方便修改

首先最基本的使用,多个textView都显示一样的颜色 跟文字大少等属性

Sytle的定义:

  1. <style  name="TextViewStyle1">
  2. <item name="android:textColor">@android:color/holo_red_light</item>
  3. <item name="android:textSize">40sp</item>
  4. <item name="android:layout_height">wrap_content</item>
  5. <item name="android:layout_width">200dp</item>
  6. <item name="android:background">#ffff00ff</item>
  7. <item name="android:gravity">center_horizontal</item>
  8. </style>

这些属性都熟悉,使用

  1. <TextView
  2. style="@style/TextViewStyle1"
  3. android:layout_marginTop="100dp"
  4. android:text="test1"/>
  5. <TextView
  6. style="@style/TextViewStyle1"
  7. android:layout_marginTop="200dp"
  8. android:text="test2"/>
  9. <TextView
  10. style="@style/TextViewStyle1"
  11. android:layout_marginTop="300dp"
  12. android:text="test3"/>
  13. <TextView
  14. style="@style/TextViewStyle1"
  15. android:layout_marginTop="400dp"
  16. android:text="test4"/>
  1. 那么结果就是<img src="http://img.blog.csdn.net/20140913101147703?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvaGV3ZW5jZTE=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="" />
  1. 那么我们在<TextView 中使用了Style 而且使用了与style中相冲突会早呢么样呢?
  1. 修改第一个textView的背景跟颜色:
  1. <pre name="code" class="html"><TextView
  2. style="@style/TextViewStyle1"
  3. android:layout_marginTop="100dp"
  4. android:gravity="center_horizontal"
  5. android:background="#ff00ff00"
  6. android:textColor="#ffffffff"
  7. android:text="test1"/>

那么结果就是

  1. 由此可以见,相关view的属性包括style中的所有的属性,view中自己还定义了的就使用view字定义的
  1. style中的属性,在view中没有作用的会自动忽略掉

2.style的继承

1.加上parent

<style name="TextViewStyle2" parent="@style/TextViewStyle1">
        <item name="android:layout_width">400dp</item>
    </style>

2.加点

<style name="TextViewStyle1.test">
        <item name="android:layout_width">800dp</item>
    </style>

还可以多继承:

<style name="TextViewStyle1.test.test">
        <item name="android:layout_width">1200dp</item>
    </style>

那么布局文件改成:

  1. <TextView
  2. style="@style/TextViewStyle1"
  3. android:layout_marginTop="100dp"
  4. android:gravity="center_horizontal"
  5. android:background="#ff00ff00"
  6. android:textColor="#ffffffff"
  7. android:text="test1"/>
  8. <TextView
  9. style="@style/TextViewStyle1.test.test"
  10. android:layout_marginTop="200dp"
  11. android:text="test2"/>
  12. <TextView
  13. style="@style/TextViewStyle2"
  14. android:layout_marginTop="300dp"
  15. android:text="test3"/>
  16. <TextView
  17. style="@style/TextViewStyle1.test"
  18. android:layout_marginTop="400dp"
  19. android:text="test4"/>

输出结果如下:

sytle的更多属性见android包下的R.attr,这些都是系统的哦!

使用Theme,这个就猛了,改了以后会影响真个程序的显示:

系统默认有:

  1. <application
  2. android:allowBackup="true"
  3. android:icon="@drawable/ic_launcher"
  4. android:label="@string/app_name"
  5. android:theme="@style/AppTheme" >

我先把

  1. AppTheme修改一下吧:
  1. 加入二个元素:<pre name="code" class="html"> <style name="AppBaseTheme" parent="android:Theme.Holo.Light.DarkActionBar">
  2. <!-- API 14 theme customizations can go here. -->
  3. <strong><item name="android:textSize">60sp</item>
  4. <item name="android:typeface">monospace</item></strong>
  5. </style>

那么系统所有的文字的大少都是60sp,字体使用monospace(除非你们的View重新定义了)

更多的系统style可以在:

sdk\platforms\andrid-$API\data\res\themes.xm   styles.xml

2.自定义属性的使用

其实我们在style.xml中使用自定义属性的话,不需要写自定义控件的命名空间,我们只需要在style中使用命名控件的地方换成自定义控件的包名即可(注意:是包名,不带自定义控件的名字),如下:

    1. <resources xmlns:android="http://schemas.android.com/apk/res/android" >
    2. <style name="test" >
    3. <item name="android:textSize">60sp</item>
    4. <item name="com.zhufuing:name_text">hello,world!</item>
    5. </style>
    6. </resources>

Android的Style的使用的更多相关文章

  1. Android 样式 (style) 和主题(theme)

    转载:https://gold.xitu.io/post/58441c48c59e0d0056a30bc2 样式和主题 样式是指为 View 或窗口指定外观和格式的属性集合.样式可以指定高度.填充.字 ...

  2. android的style控制Theme

    value-v14就是在API14(4.0)的手机上所使用的Theme(其他版本以此类推) theme的名字叫做AppTheme,后面写有继承自哪个Theme,如下所示 <style name= ...

  3. Android:Style和Theme

    在Web开发中,Html负责内容,CSS负责表现.同样,在Android开发中,可以使用Theme.Style+UI组件的方式实现内容和形式的分离. Style是针对窗体元素级别的,改变指定控件或者L ...

  4. Android中Style和Theme的使用

    Style: Style是View中一些属性的集合,包括height,padding,font color,background等等,Style单独定义在xml文件中,类似与web页面中css的角色, ...

  5. Android中style和theme的区别

    在学习Xamarin android的过程中,最先开始学习的还是熟练掌握android的六大布局-LinearLayout .RelativeLayout.TableLayout.FrameLayou ...

  6. Android样式(style)和主题(theme)

    样式和主题 样式是指为 View 或窗口指定外观和格式的属性集合.样式可以指定高度.填充.字体颜色.字号.背景色等许多属性. 样式是在与指定布局的 XML 不同的 XML 资源中进行定义. Andro ...

  7. ReactNative中iOS和Android的style分开设置教程

    reactnative可以编辑iOS程序也可以编辑Android程序, 而且80%的代码都可以重用. 及有些文件是两个系统通用的, 相信大家也都清楚了. 但是也许大家会遇到一些屏幕布局的问题, 最常遇 ...

  8. android 自定义Style初探---ProgressBar

    系统自带的ProgressBar太丑了,所以我决定自定义一个Style. 原来的Style <?xml version="1.0" encoding="utf-8& ...

  9. 使用Eclipse为Android定义style

    1.首先,在values目录下,新建一个styles.xml文件: 2.进入styles.xml文件,点击Resources: 3.点击Add按钮,在弹出的对话框中选择在顶层创建新元素,在选择Styl ...

随机推荐

  1. ASP.NET本质论第一章网站应用程序学习笔记2

    1.初步走进ASP.NET 上篇笔记我们讲述了服务器监听问题,这篇我们就要讲述具体的请求处理了,ASP.NET所涉及的类大多数定义在System.Web程序集中. 在.NET中,程序集管理的最小逻辑单 ...

  2. [原创]winform_PC宴会图片抽奖/文字抽奖

    14年6月 好友结婚 14年4月左右知道他们婚礼由迎宾照抽奖的环节 问我有没有可以用的抽奖软件 我网上找了一会儿,就放弃了,自己做一个更快不是? 14年6月,PC宴会图片抽奖软件成功使用 --- 操作 ...

  3. JAVA-使用commos-fileupload实现文件上传与下载

    一文件的上传 实体类 在CODE上查看代码片派生到我的代码片 import java.sql.Timestamp; /** * * @Decription 文件上传实体类 * @author 刘楠 * ...

  4. 【原】error C2679: binary '<<' : no operator found which takes a right-hand operand of type 'std::string'

    今天遇到一个非常难以排查的BUG,谷歌度娘都问过了依旧无解,最后自己重新尝试之后找到解决方案: 先看一下报错信息: 1>.\lenz.cpp(2197)  error C2679: binary ...

  5. 小波说雨燕 第三季 构建 swift UI 之 UI组件集-视图集(五)Image View视图 学习笔记

    留下两个问题:1.后面涉及到的异常不知道原因.2.动态图片到了程序里面就不动了.       然后:   上面是有问题的,下面是没有问题的了.    代码(另外简单写的代码,纠正了那个错误): imp ...

  6. Navicat 连接 Oracle数据库 提示 cannot load OCI DLL 的解决

    一.32位系统下 cannot load OCI DLL,126 解决方法:工具->选项->OCI 选择oracle安装目录下bin里面的oci.dll 二 .在64位系统下安装了Orac ...

  7. 在Dynamics CRM 2015中通过3CX插件(以及3CX windows phone)拨出电话

    背景 在On-premises部署的Dynamics CRM中实现通过网页拨通客户电话的功能 要点 3CX 提供了开箱即用的Dynamics CRM Solution,只需要在Microsoft Dy ...

  8. 使用Android studio创建的AIDL编译时找不到自定义类的解决办法

    使用AS创建ADIL文件时AS会在main文件夹下给我们生成一个aidl文件夹和一个相同包名的包,通常我们会把所有和ADIL相关的类或文件放在这个包下,但是如果存在自定义的类时,程序编译时无法通过,提 ...

  9. HTTPS的七个误解

    转自:http://www.ruanyifeng.com/blog/2011/02/seven_myths_about_https.html 开发网页的时候,往往需要观察HTTP通信. 我使用的工具主 ...

  10. MySQL之ALTER

    1:删除列 ALTER TABLE [表名字] DROP [列名称] 2:增加列 ALTER TABLE [表名字] ADD [列名称] INT NOT NULL COMMENT '注释说明' 3:修 ...