Android主题初探

主题

可以把主题看作是样式的加强版本。同样是定义一套公共主题属性,样式属性需要逐个添加,而主题属性则会自动应用于整个应用中。

默认主题

新建的Android项目都自带默认主题,找到并打开AndroidManifest.xml文件可以看到application标签下的theme属性,如下图所示:
这里写图片描述
theme属性指向的主题叫AppTheme,定义在styles.xml文件中。
在styles.xml文件中查看AppTheme主题
这里写图片描述
AppCompat库自带三大主题:

  • Theme.AppCompat :深色主题
  • Theme.AppCompat.Light:浅色主题
  • Theme.AppCompat.Light.DarkActionBar:带深色工具栏的浅色主题

上图中的三个主题属性适用于所有使用同一主题的组件:

  • cololrPrimary:主要用来设置工具栏背景色,由于应用名称是显示在工具栏上的,也可以成为应用品牌色。
  • colorPrimaryDark:用于屏幕顶部的状态栏(注意只有Lollipop以后的系统支持状态栏主题色,对于之前的系统,无论指定什么主题颜色,状态栏都是不变的黑色)
  • colorAccent:主要用于给EditText这样的组件着色

覆盖主题属性

想要更改应用程序中的某个控件的属性,首先需要确定这个属性名称是什么,对于一些不确定的属性名,需要采取向上追溯的方法,找出主题继承的源头,然后凭感觉挑选一个验证猜想。比如在styles文件中选择Theme.AppCompat.Light.DarkActionBar,ctrl+B跳转到定义的文件,依次查找父主题,直到查找到目标属性。还有一点需要注意的是,找到属性名之后在引用的时候需要添加android:前缀,因为这些主题包含在Android操作系统中。
这里写图片描述
有一些属性名比如textColor,textSize,这些都知道的就不需要再寻找。只需要寻找那些我们不确定的。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章