灵通163百科在线-实用的手机,证券免费资源网站

您现在的位置:首页 > Android资源 > 主题资源 >

详解Android主题开发的样式教程

教程来源:www.lt163.com     点击数:     更新时间:2017-11-14 09:11

  Android中的样式和css样式作用相似,都是用于为界面元素定义显示风格,它是一个包含一个或者多个view 控件属性的集合。主题是一个包含一种或者多种格式化属性的集合,你可以将其为一个单位用在应用中所有的Activity当中或者应用中的某个Activity当 中。比如,你可以定义一个主题,它为window frame和panel的前景和背景定义了一组颜色,并为菜单定义可文字的大小和颜色属性,你可以将这个主题应用在你程序当中所有的Activity里。

  文章内容:

  0. 样式和主题

  1. 定义样式

  1.1 定义样式的步骤

  1.2 继承

  1.3 多层次继承

  1.4 样式属性

  2. 为UI使用样式和主题

  2.1 为单个视图使用样式

  2.2 为Activity或应用程序使用主题

  2.3 根据不同平台版本选择主题

  3. 使用平台的样式和主题

  0. 样式和主题(Styles and Themes)

  样式(style)是用来指定视图或窗口的外观和格式的一组属性集合。样式也可以用来指定高度、填充、字体大小、背景颜色等等。其样式在XML资源文件中定义,和指定布局的XML文件是分开的。

  Android中的样式和网页设计中的CSS(级联样式表)践行同样的哲学:将设计和内容分开。

  比如,可以把下面这个布局XML

  变成下面这样:

  所有和样式相关的属性都从布局文件中移动到了一个名为CodeFont的样式定义中。CodeFont样式的定义会在下文给出。

  主题(theme)是应用到整个activity或者应用程序的样式。而不是像上面的例子一样只应用到单个视图。当一个样式变成主题后,Activity或应用程序中的所有视图都将应用这个样式中它所支持的属性。例如,你可以将上面例子中的GodeFont样式作为一个activity的主题,然后这个Activity中所有的文字都将变成monospace字体。

  1. 定义样式(Defining Styles)

  1.1 创建样式的步骤:

  1.在工程的res/values目录下创建一个XML文件。这个XML文件的根节点必须是<resources>。

  2.为每一个你要创建的样式创建一个<style>元素。并且用来识别每个<style>的name属性的值必须是独一无二的。

  3.为样式的每一个属性创建一个<item>元素,每个<item>都必须有一个name来表示样式属性,一个和name对应的值。这个值可以是关键字字符串、十六进制表示的颜色、对另一个资源类型的引用,或者其他值。

  下面是一个只有单个样式的示例文件

     <resources>的每个子元素在编译期间都会被转化为一个应用程序资源对象。为每一个样式指定name后,IDE会在R文件中为这个样式创建一个ID,以后就可以在布局文件中根据@style/id来引用相应的样式。比如要引用上面定义的样式,可以使用@style/CodeFont。

  <style>元素的parent属性是可选的。parent属性用来指定当前样式要继承属性的样式的id(样式之间是可以继承的)。你还可以覆写继承来的属性。

  在XML文件中为一个应用程序或者Activity定义一个主题和为一个视图定义一个样式的方式是一模一样的。在上面定义的GodeFont样式即可以作为单个视图的样式,也可以作为一个应用程序或Activity的主题。如何将一个样式应用到一个视图或者整个应用程序或Activity在稍后说明.

       1.2 继承

  <style>的parent属性可以指定一个你想要继承的属性。你可以继承一个现有的样式然后定义你想要修改或添加的属性。你可以继承你自己定义的属性,也可以继承平台内置的属性。比如,你可以继承Android平台的默认字体外观然后修改它。

  如果你要继承自己定义的样式,你不需要使用parent属性,只需要在把你新定义的样式的name的前缀名设为你要继承的属性的name。前缀name和name用点号分开。例如,如果你要定义一个新颜色继承自CodeFont样式,然后把字体颜色设为红色,你可以这样定义这个样式:

没有相关教程