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论坛寻找更多。


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

2个答案

默认排序 按投票排序
0

Android system is also strong and most of the people using it because learning it easier. The essay writing papers share some courses which you can join for learning or be a part of them in any way. 

0

I would suggest this to my friend who needs help on creating an Android application. She likes to play dance genres word whizzle during her break on programming.