android样式(style)及主题(Theme)的应用
好了,我们言归正传,首先看看什么是样式和主题:
样式和主题资源都是对于android应用进行美化的,只要充分利用android应用的样式和主题资源,开发者可以开发出各种风格的android应用。
首先我们看到样式资源。
如果我们经常需要对某个类型的组件指定大致的格式,比如字体、颜色、背景颜色等,如果我们每次都要为View组件重复指定这些属性的话,毫无疑问的会提高我们的代码量,降低我们的开发效率,而且不利于代码的后期维护,所以我们很有必要掌握样式的应用。
android的样式资源文件也是存放在/res/values文件下的,根元素是<resources..../>元素,该元素内可包含多个<style/>子元素,每个<style/>元素都是定义了一个样式,该元素下面存放了两个属性。
<style name="AppBaseTheme" parent="android:Theme.Light">
1.name:指定样式的名称
2.parent: 指定样式所继承的父样式,当继承某个样式的时候,该样式会获得父样式的属性,当然,子样式可以覆写父样式的方法,<style/>下面可以定义多个<item/>子标签,他们也有自己的名称具体的格式如下:
<style name="styledemo">
<item name="android:background">#00ff00</item>
</style>
这里只是列举了一个item,假如各位读者还有更多的需要,也可以相应的做添加
那么,我们接下来看一下继承父样式是怎么一回事。相信有过java变成的人都知道java的四大特点之一就有一个继承,关于继承的优点这里不再重复。我们直接看代码吧:
<style name="styledemo">
<item name="android:background">#00ff00</item>
</style>
<style name="baby" parent="@style/AppTheme">
<item name="android:textSize">25sp</item>
</style>
这就是样式的定义格式,那么我们怎么用呢,在我们的layout文件下,组件可以使用style属性,引用到该样式,具体代码如下:
<Button
android:id="@+id/callbackWall"
android:layout_width="96dp"
android:layout_height="96dp"
android:layout_below="@id/points"
style="@style/baby"
android:text="" />
讲完了样式,我们讲一下主题,主题其实和样式非常的相似,但是跟样式又有很大的不同,
主要的不同体现在:
1.主题不能作用于单个的view组件,主题应该是对整个应用中的所有的activity起作用或者对指定的activity起作用。
2.主题定义的格式应该是改变外观的格式,如窗口标题,窗口边框等。因为对主题不怎么常用,有需要的朋友可以到open论坛寻找更多。
好了,今天就聊这些,下次有时间我们接着聊。