您的位置:首页 > 移动开发 > Android开发

Android自带的Theme主题图解

2015-11-29 16:45 323 查看

一、Manifest文件中:



从上图中我们可以看到在这个应用程序中我们的主题应用的是 AppTheme ,然后我们去看看 AppTheme 。

二、style.xml文件中:

这个文件是在应用工程中的:





然后又可以发现 AppTheme 主题样式是继承自 AppBaseTheme 主题样式的,

而 AppBaseTheme 主题样式又是继承自 android:Theme.Light 主题样式的。

然后我们先去看看 android:Theme 。样式即 style 。

三、themes.xml文件中:

这个文件是在你的Android开发环境中的:





从这个图中可以看出,这里定义了具体的 Theme 的主题样式,其中的 item 就是这样样式包含的具体的一些属性,同时还在 item 中给出了这些属性的具体值。



同时在这个文件中不止有 Theme 这一个主题样式,你想啊文件名都叫 themes.xml ,那就当然有很多的主题样式啦。

看吧,在文件的下面还有其他的一些样式的定义,比如我们常见的 Theme.NoTitleBar 等。而且下面的这些样式都是继承于 Theme 样式的,通过一个点来表示继承关系,继承后的主题样式只需要列出与 Theme 不同的那些 item 就可以啦。

然后我们继续深入,去查看在 item 中具体赋予的值,以上上个图中的 <item name="textAppearanceLarge">@android:style/TextAppearance.Large</item> 为例。

四、styles.xml文件中:

这个文件是在Android开发环境中的:





这里我们又进入了一个 styles.xml 文件,看吧,这里就显示的 TextAppearance.Large 依然是一个样式,不过这次终于在它的 item 中写明的它的内容,也就是指定 android:textSize 的大小为22sp。

五、activity_main.xml文件中:



最后就是对它的一个具体的引用了,这里用的是问号?,?代表引用主题属性,嘻嘻,这下知道这个东东是从哪里来的了吧!!!

六、为什么会有这些属性?在 attrs.xml 文件中:

在上面的介绍中,我们一直在讲 android:textAppearance="?android:attr/textAppearanceLarge" 等号右边是如何来的,那等号左边呢?为什么会有这些属性的存在?Android是在哪里定义它们的呢?这就要去访问Android系统中的 attrs.xml 文件了。

请原谅我并不知道如何在Eclipse中打开这个文件,现在我们在网页上浏览这个文件内容:



没错!!!进来以后看到的又是 Theme ,前面的 declare-styleable 表示自定义属性,什么意思呢?就是说下面的每个 attr 都在声明Theme这个自定义属性中可以有的属性名称 name 和属性格式 format 。

比如说 colorBackground 这个属性,它的格式表示为 color ,那这个属性在赋值的之后就只能用RGB颜色来表示。

然后向下翻翻,我们马上就可以找到我们想要找到的那个属性,这里指定了它的格式必须是一个引用。



下面是一个我们非常熟悉的属性:



在这里表示 layout_height 的格式是一个尺寸值dimension,下面还给出了我们常用的可以用来代替它的尺寸值的属性值。是不是很神奇呀!!!

七、关于这些文件们:

其实在Android 的集成开发环境中,包含着许多这样的文件,它们定义了很多默认的属性:

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: