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. Wechat4j之Hello world——使用wechat4j快速开发java版微信公众号

    Wechat4j是一个开源的java微信开发框架,是目前最简单易用的java微信开发框架. 项目地址:https://github.com/sword-org/wechat4j Wechat4j.ja ...

  2. webpack学习(入门基础)

    webpack的学习webpack是什么?1:加载模块(将JS.sass/less.图片等作为模块来处理使用) 2:进行打包 webpack的优势?1:webpack以commonJS(JS的规范)的 ...

  3. java调用html模板发送html内容的邮件

    在项目需要发送邮件,普通内容的邮件觉得太单调.太丑,没逼格,所以说直接把用到的邮件内容做成一个html模板,发送之前将对应参数替换掉,发送html内容的高逼格邮件. 首先需要引用jar包,这就不多说了 ...

  4. C#将DataTable转化为List<T>

    C#将DataTable转化为List<T> 在使用三层架构开发一个网站时,希望把DataTable对象转换为List<T>对象,于是在网上找资料,总结一个比较方便的方法来实现 ...

  5. STL--双端队列(deque)和链表(list)

    双端队列(deque容器类): #include<deque>与vector 类似,支持随机访问和快速插入删除,它在容器中某一位置上的操作所花费的是线性时间. 与vector不同的是:de ...

  6. 【读书笔记】iOS-GCD-使用方法

    代码: -(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event { dispatch_async(dispatch_get_gl ...

  7. IOS开发--常用的基本GDB命令

    gdb不是万能的,可是没有gdb却是万万不能的.这里给大家简单介绍下iOS开发中最基本的gdb命令. po po是print-object的简写,可用来打印所有NSObject对象.使用举例如下: ( ...

  8. iOS开发笔记11:表单键盘遮挡、浮点数价格格式化显示、省市区选择器、View Debugging

    1.表单键盘遮挡 应用场景为一个collectionView上有多个textfield.textView供用户填写信息. 之前输入项较少时,采取的方法比较粗暴,didSelectItemAtIndex ...

  9. iOS之UI--使用SWRevealViewController实现侧边菜单功能详解实例

    使用SWRevealViewController实现侧边菜单功能详解 下面通过两种方法详解SWRevealViewController实现侧边菜单功能: 1.使用StoryBoard实现   2.纯代 ...

  10. Xcode 插件失效的临时解决方案

    每当Xcode升级之后,都会导致原有的Xcode插件不能使用,这是因为每个插件的Info.plist中记录了该插件兼容的Xcode版本的DVTPlugInCompatibilityUUID,而每个版本 ...