1.首先,先写attrs.xml
<?xml version="1.0" encoding="utf-8"?>
<resources>
<declare-styleable name="theme">
<attr name="name" format="reference" />
<attr name="age">
<flag name="child" value="10" />
<flag name="young" value="18" />
<flag name="oldman" value="60" />
</attr>
<attr name="textSize" format="dimension" />
</declare-styleable>
</resources>
2.在values路径下创建文件theme.xml可以为attres.xml中的theme的子节点定义属性
<resources>
<style name="Theme">
<item name="name">@android:style/Widget.Button</item>
<pre name="code" class="html"><item name="age">@android:style/Widget.Button</item>
<item name="textSize">@android:style/Widget.Button</item>
</style></resources>
3.style.xml
<?xml version="1.0" encoding="utf-8"?>
<resources>
<style name="Widget.Button">
<item name="android:background">@android:drawable/btn_default</item>
<item name="android:focusable">true</item>
<item name="android:clickable">true</item>
<item name="android:textAppearance">?android:attr/textAppearanceSmallInverse</item>
<item name="android:textColor">@android:color/primary_text_light</item>
<item name="android:gravity">center_vertical|center_horizontal</item>
</style>
</resources>
关键在于前面地一个attres.xml文件中的 declare-styleable name="Theme"这个可以使用一个单一的xml文件为THeme的子节点实现具体内容
<attr name="colorForeground" format="color" /> 这一句的format属性可以是: reference,color,boolean,dimension,float,integer,string,fraction,enum:枚举值,flag:位或运算。具体可以看链接,有多个属性时,可以使用|连接多个属性。
http://blog.csdn.net/pgalxx/article/details/6766677
在theme.xml中declare-styleable name="Theme"的每一条属性对应<style name="theme">下面的一个item子节点