Android 5.0以上系统常用控件着色指南

2,638 阅读3分钟

简介

当我们新建一个项目的时候,都会给Application或者某些Activity设置theme:

android:theme="@style/AppTheme"

这时就需要我们选择或者自定义一个主题,那每个属性又都是什么含义呢?

来看个例子:

<style name="AppTheme" parent="@style/Theme.AppCompat.Light.DarkActionBar">
	<!--主色调 -->
	<item name="colorPrimary">@color/colorPrimary</item>
	<!--状态栏颜色-->
	<item name="colorPrimaryDark">@color/colorPrimaryDark</item>
	<!--控制各个控件被选中时的颜色-->
	<item name="colorAccent">@color/colorAccent</item>
	<!--页面背景色-->
	<item name="android:windowBackground">@color/colorWindowBg</item>
	<!--底部导航栏颜色-->
	<item name="android:navigationBarColor">@color/colorPrimaryDark</item>
	<!--ToolBar上的Title颜色-->
	<item name="android:textColorPrimary">@color/colorText</item>
	<!--各个控制控件的默认颜色 与colorAccent相反-->
	<item name="android:colorControlNormal">@color/colorPrimary</item>
	<!--控制所有可点击的View的涟漪效果颜色-->
	<item name="android:colorControlHighlight">@color/colorCheck</item>
	<!--控制normal状态下button的颜色-->
	<item name="android:colorButtonNormal">@color/colorPrimary</item>
	<!--EditText 输入框中字体的颜色-->
	<item name="editTextColor">@color/colorText</item>
</style>

相关属性说明

  • 1.colorPrimary: Toolbar导航栏的底色。
  • 2.colorPrimaryDark:状态栏的底色,注意这里只支持Android5.0以上的手机。
  • 3.textColorPrimary:整个当前Activity的字体的默认颜色。
  • 4.android:windowBackground:当前Activity的窗体颜色。
  • 5.colorAccent:CheckBox,RadioButton,SwitchCompat等控件的点击选中颜色
  • 6.colorControlNormal:CheckBox,RadioButton,SwitchCompat等默认状态的颜色。
  • 7.colorButtonNormal:默认状态下Button按钮的颜色。
  • 8.editTextColor:默认EditView输入框字体的颜色。

特别介绍

下面我们要说的是其他一些和颜色相关的属性,这些属性可能你平时并不常用,但合理运用它们不仅可以使你的界面更加绚丽而且可以达到事半功倍的效果。(再次声明以下属性适用于5.0及其以上系统)

1、colorControlHighlight

colorControlHighlight用于控制所有可点击的View的涟漪效果颜色,以button举例来说

普通状态下的button

这里写图片描述

现在我们在AppTheme中添加下面这条属性

<item name="android:colorControlHighlight">@color/colorCheck</item>

这里写图片描述

2、colorButtonNormal

用于控制normal状态下button的颜色(注意和button的background属性的区别,设置colorButtonNormal后button依旧会具有涟漪效果,而设置background就没有涟漪效果了)

设置colorButtonNormal后button的normal状态如下

这里写图片描述

3、android:navigationBarColor

控制底部导航栏的背景色(注意前边必须有android:),例如:

这里写图片描述

常用控件颜色属性

EditText

  • unfocused —— colorControlNormal
  • focus —— colorAccent
  • cursor —— colorAccent
  • text color —— android:textColorPrimary

RadioButton

  • unselected —— colorControlNormal
  • selected —— colorAccent

CheckBox

  • box unchecked —— colorControlNormal
  • box checked —— colorAccent

Toolbar

  • background —— 布局文件中设置android:background="?attr/colorPrimary
  • overflow icon —— android:textColorPrimary
  • navigation icon —— android:textColorPrimary
  • action icons —— android:textColorPrimary
  • overflow menu background —— android:colorBackground
  • overflow text color —— android:textColorPrimary

ActionBar

  • background —— colorPrimary
  • title color —— android:textColorPrimary
  • overflow icon —— android:textColorPrimary
  • up button —— android:textColorPrimary
  • action icons —— android:textColorPrimary
  • overflow menu background —— android:colorBackground
  • overflow text color —— android:textColorPrimary

Spinner

  • indicator (not pressed) —— colorControlNormal
  • indicator (pressed) —— colorAccent
  • selected entry text color —— "android:textColorPrimary

SwitchCompat

  • thumb switch off —— colorSwitchThumbNormal
  • thumb switch on —— colorAccent
  • track overlay —— colorAccent"