Style

来源:互联网 发布:酒鬼蔷薇圣斗事件知乎 编辑:程序博客网 时间:2024/04/29 12:15

在Android程序开发过程中,也可以通过样式(Style)的方式,初始化TextView的文本颜色、大小;当然这个范例只是抛砖引玉,在Layout当中的任何对象(以XML定义)都可以用样式化的方式来更改其外观。

 

Style的写法与先前介绍到的颜色常数(color.xml)相同,同样是定义在res/values下面

 

res/layout/main.xml

<!-- 应用样式1的TextView -->

  <TextView

  style="@style/DavidStyleText1"

 android:layout_width="fill_parent"

 android:layout_height="wrap_content"

 android:gravity="center_vertical|center_horizontal"

 android:text="@string/str_text_view1"

  />

 

res/values/style.xml

<?xmlversion="1.0" encoding="utf-8"?>

<resources>

  <stylename="DavidStyleText1">

   <item name="android:textSize">18sp</item>

   <item name="android:textColor">#EC9237</item>

  </style>

</resources>

 

styles.xml

<?xml version="1.0" encoding="utf-8"?>
  <!-- Copyright 2009 Joe LaPenna -->

<resources>
  <style    name="FoursquareTheme"
    parent="@android:style/Theme.Light">
    <item      name="android:listSeparatorTextViewStyle">@style/listSeparatorTextViewStyle</item>
    <item      name="android:listViewStyle">@style/listViewStyle</item>
  </style>
 
  <style    name="listSeparatorTextViewStyle"
    parent="@android:attr/listSeparatorTextViewStyle">
    <item      name="android:layout_height">wrap_content</item>
    <item      name="android:layout_width">fill_parent</item>
    <item      name="android:paddingTop">2dip</item>
    <item      name="android:paddingBottom">3dip</item>
    <item      name="android:paddingLeft">5dip</item>
    <item      name="android:background">@drawable/foursquare_gradient</item>
    <item      name="android:textAppearance">@android:style/TextAppearance.Small</item>
    <item      name="android:shadowColor">#111111</item>
    <item      name="android:shadowRadius">1</item>
    <item      name="android:shadowDy">1</item>
    <item      name="android:textStyle">bold</item>
    <item      name="android:textColor">@android:color/white</item>
  </style>

  <!--
    These two styles, listViewStyle and tabHostStyle exist only to allow donut/cupcake to display a
    black-backgrounded TabWidget while preserving the light color background of the app's listviews.
  -->
  <style    name="listViewStyle"
    parent="@android:attr/listViewStyle">
    <item      name="android:background">@android:color/white</item>
    <item      name="android:divider">@drawable/divider</item>
  </style>

  <style    name="tabHostStyle">
    <item      name="android:background">@android:color/black</item>
  </style>


  <!--  Manually specified -->

  <style    name="listItemStyle">
    <item      name="android:paddingBottom">6dip</item>
  </style>

  <style    name="secondaryTextStyle">
    <item      name="android:paddingRight">4dip</item>
    <item      name="android:textAppearance">@android:style/TextAppearance.Small</item>
    <item      name="android:textColor">#74CBE7</item>
  </style>

  <style    name="venueQuickCheckinStyle">
    <item      name="android:paddingTop">0dip</item>
    <item      name="android:paddingBottom">0dip</item>
    <item      name="android:paddingLeft">16dip</item>
    <item      name="android:background">@drawable/quick_checkin_states</item>
    <item      name="android:text">Quick-Checkin</item>
    <item      name="android:textAppearance">@android:style/TextAppearance.Small</item>
    <item      name="android:shadowColor">#111111</item>
    <item      name="android:shadowRadius">1</item>
    <item      name="android:shadowDy">1</item>
    <item      name="android:textColor">@android:color/white</item>
  </style>

  <style    name="TextStyleWhite">
    <item      name="android:shadowColor">@color/dgrey_end</item>
    <item      name="android:shadowRadius">2</item>
    <item      name="android:padding">3dip</item>
    <item      name="android:shadowDy">1.4</item>
    <item      name="android:shadowDx">1.4</item>
    <item      name="android:textColor">@color/white</item>
 
  </style>
  <style    name="listSeparatorTextViewStylePurple"
    parent="@android:attr/listSeparatorTextViewStyle">
    <item      name="android:layout_height">wrap_content</item>
    <item      name="android:layout_width">fill_parent</item>
    <item      name="android:paddingLeft">5dip</item>
    <item      name="android:background">@drawable/purple_gradient</item>
    <item      name="android:textAppearance">@android:style/TextAppearance.Small</item>
    <item      name="android:shadowColor">#111111</item>
    <item      name="android:shadowRadius">1</item>
    <item      name="android:shadowDy">1</item>
    <item      name="android:textStyle">bold</item>
    <item      name="android:textColor">@android:color/white</item>
  </style>
 
</resources>

 扩展学习

style与color的XML语法相类似,皆需要先声明xml的版本以及encoding为UTF-8,但其内的resources则需要以stylename作为样式名称,在最内层才是以item定义样式的范围,其语法如下:

父类属性【parent=string】标识了当前风格是继承于哪个风格

<style name=string[parent=string] >

  <itemname=string>Hex value | string value | reference</item>+

</style>

原创粉丝点击