一、理解Android样式资源文件的使用

  1. 1
    本例子中定义TextView控件的样式,在布局文件中添加TextView控件时,初学者通常喜欢直接声明控件文件的大小、字体的颜色、文本的类型等,如下图:

    android CompatSeekBar 样式 安卓样式库_控件

  2. 2
    文件的大小、字体的颜色、文本的类型等,统称为TextView控件的样式,为了实现样式的复用,TeachCourse有时候喜欢抽取出来,独立写到style.xml文件中,如下图:

    android CompatSeekBar 样式 安卓样式库_控件_02

    android CompatSeekBar 样式 安卓样式库_资源文件_03

  3. 3
    样式的继承方式分为两种,第一种继承系统提供的样式,第二种继承自己style.xml文件声明的另一个样式,比如:CodeFont样式继承Android系统提供的@android:style/TextAppearance.Medium,继承style.xml文件声明的样式如下图:

    android CompatSeekBar 样式 安卓样式库_xml文件_04

    END

二、理解Android主题资源文件的使用

  1. 1
    主题资源文件可以定义在style.xml文件中,也可以定义在theme.xml资源文件中,通常钊林更推荐定义在theme.xml文件中,主题应用于ActivityApplication中,详情可以打开AndroidManifest.xml文件查看,如下图:

    android CompatSeekBar 样式 安卓样式库_资源文件_05

    android CompatSeekBar 样式 安卓样式库_控件_06

  2. 2
    主题的作用改变Activity或Application外在显示,第一种引用主题的方式如上图在AndroidManifest.xml文件中,另外一种引用方式在代码中,比如:创建Dialog对话框的时候,指定对话框主题,如下图:

    android CompatSeekBar 样式 安卓样式库_资源文件_07

  3. 3
    打开Theme_CustomDialog主题资源文件,查看主题定义的方式,如下图:

    android CompatSeekBar 样式 安卓样式库_xml文件_08

    android CompatSeekBar 样式 安卓样式库_资源文件_09

    END

三、深入理解样式和主题的区别

  1. 1
    样式和主题定义的xml文件使用相同的根标签resources,主题同样可以继承系统的和自定义的两种方式,这一点和样式一样,比如:Theme.CustomDialog继承系统主题@android:style/Theme.Dialog
  2. 2
    样式应用于某个View视图,主题应用于Activity或Application,同时样式的引用方式style="@style/CodeFont";主题的引用方式android:theme="@style/AppTheme",这一点需要特别注意
  3. 3
    View视图将只应用那些支持的样式属性,并忽略其他属性;打开当前电脑SDK路径,查看主题的定义方式

    android CompatSeekBar 样式 安卓样式库_xml文件_10

    END

注意事项

  • 简单理解样式仅作用于控件,主题作用于组件
  • 主题属于特别的样式,某些样式任何View不支持,仅以主题形式出现