android样式学习

要使用android中的样式一般这么干:
1.在资源目录下的values文件夹下新建一个xml文档.一般叫styles.xml
该xml的内容如下:
<!--
这里的name是给你自定义的样式取一个名字.然后样式具体规定的样式
在该style节点里通过item节点进行控制.就像map中key-value对一样.
当然了这里的key要符合标准,最好是现在布局文件中写好该key然后
在拷贝到item节点下,防止出错.
-->

<?xml version=1.0 encoding="utf-8"?>

<resource>
<style name="textViewStyle">
<item name="android:textSize">22sp</item>
<item name="android:textColor">#FF0000</item>
</style>


<!-- 也可以对样式进行继承, 只要在子样式中的style节点上声明
其继承的父样式即可.通过parent="xxx"进行指定.这里跟java中的继承
很像,我们也可以重写父样式中的某个样式-->

<style name="childStyle" parent="textViewStyle">
<item name="android:textSize">30sp</item>
</style>

<!--继承还有另外一种方式,直接在子样式的名字中继承.
该字样是的name写为: 父样式名.子样式名.
如下所示
-->

<style name="childStyle.liming">
<item name="android:textColor">#FFF000</item>
</style>

<resource>


应用自定义的样式到布局文件中.直接在要用样式修饰的组建中
声明一个style然后赋值即可.
<TextView
style="@style/childStyle.liming"
android:text="@string/hello"
/>
样式用于修饰控件,主题用于修饰整个应用或者Activity等
----------------------------------------------------

定义一个主题.
资源目录下的values文件夹下新建一个xml文档.一般叫styles.xml

<?xml version=1.0 encoding="utf-8"?>
<resource>
<style name="ithTheme">
<item name="android:windowNoTitle">true</item>
<item name="android:windowFullscreen">true</item>
</style>
<resource>
这里有一个小窍门,就是当我们要定义的多个主题的key不一样但是value都
一样时,我们可以这样来然后面的key的value跟前面的value值一样.
即在后面的value中写入: ?第一个key .表示后面的key的值都引用第一个
key的value的值.
如:
<?xml version=1.0 encoding="utf-8"?>
<resource>
<style name="ithTheme">
<item name="android:windowNoTitle">true</item>

<item name="android:windowFullscreen">
?android:windowNoTitle
</item>

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

</style>
<resource>


应用主题.
在清单文件中应用.在application节点中使用
如:
<application android:icon="drawable/icon" android:label="@string/app"
android:theme="@style/ithTheme">
要注意的是在上面的样式例子中,我们为一个TextView设置了样式,
该样式规定该TextView的字体大小为22sp.
而我们在定义主题时,同样也规定了一个字体样式,这个样式修饰
的是application,即应该所有全局的文字的字体都应该为30sp.
但是真实情况不是.总结,当一个控件中样式的属性和整个application中
主题的属性冲突时,样式中的属性起决定作用.


当然主题还可以修饰Activity,只要把上面修饰appliation的主题
放到相应的activity节点下即可.
主题还可以通过代码来设置如: setTheme(R.style.ithTheme);

尽管在定义上,样式和主题基本相同,但是他们使用的地方不同.
样式用在单独的view控件中,如TextView,EditText等.
而主题通过AndroidManifest.xml中的application和activity节点
用在整个application或者某个activity中,主题对真个该应用或者
某个activity进行全局性影响.

另外android系统也自带一些主题供我们使用.如:
<activity android:theme="@android:style/Theme.Dialog">,
该主题可以让Activity看起来像一个对话框的样子.
如果需要查询android系统给我们提供的这些主题.可以在文档的
reference--->android--->R style中查看.

 

posted on 2012-08-06 23:54  lightman_21  阅读(264)  评论(0)    收藏  举报

导航