码迷,mamicode.com
首页 > 移动开发 > 详细

今天来讲讲Android的主题和样式(Theme和Style)

时间:2016-07-22 18:41:07      阅读:216      评论:0      收藏:0      [点我收藏+]

标签:

首先我们来探讨下什么是样式(Style)

有这样一个情景,当我们在写一个布局文件中,里面有很多视图,它们有着相同的属性,如果每个视图都写一遍这样相同的属性,这样会显得代码相当累赘

而且在维护代码的时候非常不方便,这时我们就可以将这些相同属性的代码抽取出来,放到styles.xml中,方便我们修改代码。

 

如何声明一个样式呢?

在styles.xml文件中建立一个<style>节点,然后在这个节点中添加<item>子节点,如:

  <style name="button_pre_style">
        <item name="android:layout_width">wrap_content</item>
        <item name="android:layout_height">wrap_content</item>
        <item name="android:layout_alignParentBottom">true</item>
        <item name="android:layout_alignParentLeft">true</item>
        <item name="android:background">@drawable/button_bg</item>
        <item name="android:drawableLeft">@drawable/previous</item>
        <item name="android:text">上一步</item>
        <item name="android:onClick">pre</item>
    </style>

如何引用一个样式呢?

样式的应用必须在布局文件中,针对的是某些窗口的视图,应用的语法如下

style="@style/button_pre_style"

 

如何引用系统的样式?

 style="@android:style/"

总结:样式多个视图属性的集合, 在写布局时, 当多个视图有不少相同的属性时, 可以把这些相同的属性放在一起在styles.xml中定义成一个Style, 而在布局文件中使用@style/style_name统一引用

 

 

接着我们来探讨一下主题

主题的本质也是style 在styles.xml中定义, 但与样式不同,主题是在manifest.xml中引用,而样式是在布局文件中应用的

 

如何定义一个主题?

定义一个主题的方法跟定义一个样式基本上是一样的

    <style name="AppTheme" parent="AppBaseTheme">
        <item name="android:textColor">#ff0000</item>
    </style>

    <style name="MyTheme" >
        <item name="android:textColor">#00ff00</item>
          <item name="android:windowNoTitle">true</item>
    </style>

 

如何引用一个主题?

主题是在manifest.xml中引用的,可以在application和activity两个节点的属性中通过android:theme="@style/AppTheme" 来引用

在activity中引用的主题会覆盖application中引用的主题,意思是说application引用的主题对整个应用的活动都是有用的,如果对单独的

activity引用特定的主题,当前的activity会覆盖application引用的主题,而显示的是activity的主题。

这里就存在一个优先级的问题?

视图内定义的样式>activity引用主题定义的样式>application引用主题定义的样式

 

如何引用系统的主题?

android:theme="@android:style/"

系统常用主题:

@android:style/Theme.Light.NoTitleBar :没有标题

@android:style/Theme.Light.NoTitleBar.Fullscreen: 全屏

@android:style/Theme.Dialog : 对话框

 

今天来讲讲Android的主题和样式(Theme和Style)

标签:

原文地址:http://www.cnblogs.com/Jsako/p/5695987.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!