Android的Style的使用

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

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

Sytle的定义:

[java] view plaincopy

  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>

这些属性都熟悉,使用

[html] view plaincopy

  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"/>

[html] view plaincopy

  1. 那么结果就是<img src="http://img.blog.csdn.net/20140913101147703?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvaGV3ZW5jZTE=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="" />

[html] view plaincopy

[html] view plaincopy

  1. 那么我们在<TextView 中使用了Style 而且使用了与style中相冲突会早呢么样呢?

[html] view plaincopy

  1. 修改第一个textView的背景跟颜色:

[html] view plaincopy

  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"/>

那么结果就是


[html] view plaincopy

  1. 由此可以见,相关view的属性包括style中的所有的属性,view中自己还定义了的就使用view字定义的

[html] view plaincopy

  1. style中的属性,在view中没有作用的会自动忽略掉

[html] view plaincopy

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>

那么布局文件改成:

[html] view plaincopy

  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,这个就猛了,改了以后会影响真个程序的显示:

系统默认有:

[html] view plaincopy

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

我先把

[html] view plaincopy

  1. AppTheme修改一下吧:

[html] view plaincopy

  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

时间: 2024-10-12 22:04:39

Android的Style的使用的相关文章

Android的Style和Theme 译文

Style 是Window和View的一种外观和格式的属性集合.它可以作为高度,间距,字体大小,背景颜色等属性.Style是一种 xml 资源文件,放在和布局文件不同的文件夹里: Style 的设计理念和 Web一脉相承--即它们都允许你把内容和样式分离. 例如,你用Style可以把下面这个xml文件: <TextView android:layout_width="fill_parent" android:layout_height="wrap_content&quo

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

转载:https://gold.xitu.io/post/58441c48c59e0d0056a30bc2 样式和主题 样式是指为 View 或窗口指定外观和格式的属性集合.样式可以指定高度.填充.字体颜色.字号.背景色等许多属性. 样式是在与指定布局的 XML 不同的 XML 资源中进行定义. Android 中的样式与网页设计中层叠样式表的原理类似 - 您可以通过它将设计与内容分离. 例如,通过使用样式,您可以将以下布局 XML: <TextView android:layout_width

android的style控制Theme

value-v14就是在API14(4.0)的手机上所使用的Theme(其他版本以此类推) theme的名字叫做AppTheme,后面写有继承自哪个Theme,如下所示 <style name="AppBaseTheme" parent="@android:style/Theme.Light.NoTitleBar"> <item name="android:windowContentOverlay">@null</i

android自定义style

抽取样式,在values中定义一个xml文件,在文件中, <resource xmlns:> 根节点 <style name>设置一个样式名字 <item name>value</Item>设置样式中每一项的名字和值 <?xml version="1.0" encoding="utf-8"?> <resources> <style name="text_title_style&q

android 自定义Style初探---ProgressBar

系统自带的ProgressBar太丑了,所以我决定自定义一个Style. 原来的Style <?xml version="1.0" encoding="utf-8"?><layer-list xmlns:android="http://schemas.android.com/apk/res/android"> <item android:id="@android:id/background">

android中用style简化布局文件

android开发相对于ios有一个很大的优势,那就是可以通过xml来写布局,而且布局可以很灵活,能适应多种屏幕.但是时间久点你会发现xml中有太多的重复代码了,我真是恨死了在每次增加一个控件的时候都要不情愿的写上 1 2 android:layout_width="wrap_content" android:layout_height="wrap_content" 这两行, 如果我们有5个button控件都是16dip白色字体.背景为#0033FF.内容居中,那么

android之style使用demo

private void showDialog(){ final Dialog dialog = new Dialog(MainActivity.this, R.style.my_style); dialog.setContentView(R.layout.help); dialog.show(); ImageView imgView = (ImageView) dialog.findViewById(R.id.imageView_help); imgView.setOnClickListene

android dialog style属性设置

<!--最近做项目,用到alertDialog,用系统自带的style很难看,所以查了资料自己定义了个style. res/value/style.xml内增加以下代码:--> <style name="dialog" parent="@android:style/Theme.Dialog"> <!--Dialog的windowFrame框为无--> <item name="android:windowFrame&

Pro Android学习笔记(二四):用户界面和控制(12):Style和Theme

静态格式 在res/values中设置静态的Style,在资源中设置静态Style可使用的HTML格式有<i> <u> <b> <sup> <sub> <strike> <big> <small> <monospace>. <string name="ui_styleText_1"><i>Static</i> style <u>in