当我们新建一个项目的时候,都会给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>
相关属性说明
下面我们要说的是其他一些和颜色相关的属性,这些属性可能你平时并不常用,但合理运用它们不仅可以使你的界面更加绚丽而且可以达到事半功倍的效果。(再次声明以下属性适用于5.0及其以上系统)
colorControlHighlight用于控制所有可点击的View的涟漪效果颜色,以button举例来说
普通状态下的button
现在我们在AppTheme中添加下面这条属性
<item name="android:colorControlHighlight">@color/colorCheck</item>
用于控制normal状态下button的颜色(注意和button的background属性的区别,设置colorButtonNormal后button依旧会具有涟漪效果,而设置background就没有涟漪效果了)
设置colorButtonNormal后button的normal状态如下
控制底部导航栏的背景色(注意前边必须有android:),例如: