android样式(style)及主题(Theme)的应用

1
Android Java C/C++ 10883 次浏览
        今天上班有点无聊,呆呆的坐在办公桌前无所事事,所以就翻开了旁边一本android开发的书籍,随意的翻开,看到的是样式的应用,所以就想到写一篇类似的文章,和各位分享,一起进步
        好了,我们言归正传,首先看看什么是样式和主题:
          
         样式和主题资源都是对于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论坛寻找更多。


好了,今天就聊这些,下次有时间我们接着聊。
    
请尽量让自己的答案能够对别人有帮助

6个答案

默认排序 按投票排序