Android默认控件主题样式颜色值设置
前段时间,有个需求要改ProgressBar显示的颜色,刚开始我以为这个控件本身有这个属性,
但是找了很久没有,其他的实现方法也是很麻烦的,后面看到可以改变Activity的主题属性改变对应的空间的默认颜色。
系统默认样式颜色如下:
不同控件颜色对应的代码
<style name="DialerStyle" parent="android:Theme.Material.Light">
<!--应用的主要文字颜色,actionBar的标题文字默认使用该颜色-->
<item name="android:textColorPrimary">#FFFFFF</item>
<!--辅助的文字颜色,一般比textColorPrimary的颜色弱一点,用于一些弱化的表示-->
<item name="android:textColorSecondary">#C1C1C1</item>
<!--应用的主要色调,actionBar默认使用该颜色,Toolbar导航栏的底色-->
<item name="android:colorPrimary">#2A56C6</item>
<!--应用的主要暗色调,statusBarColor 默认使用该颜色-->
<item name="android:colorPrimaryDark">#2A56C6</item>
<!--状态栏颜色,默认使用 colorPrimaryDark-->
<item name="android:statusBarColor">#00FFFF</item>
<!--底部栏颜色-->
<item name="android:navigationBarColor">#FF1493</item>
<!--窗口背景颜色,此处不允许直接赋值如 #FFFFFF,必须在color中定义使用-->
<item name="android:windowBackground">@android:color/white</item>
<!--控件选中时的颜色,默认使用colorAccent-->
<item name="android:colorControlActivated">#FF7F50</item>
<!--控件按压时的色调-->
<item name="android:colorControlHighlight">#FF00FF</item>
<!--CheckBox,RadioButton,SwitchCompat等默认状态的颜色-->
<item name="android:colorControlNormal">#FFD700</item>
<!--默认按钮的背景颜色-->
<item name="android:colorButtonNormal">#1C71A9</item>
<!--一般控件的选中效果默认采用该颜色,如 CheckBox,RadioButton,SwitchCompat,ProcessBar等-->
<item name="android:colorAccent">#008000</item>
<!--默认 EditView 输入框字体的颜色-->
<item name="android:editTextColor">#E6E6FA</item>
<!--默认 Button,TextView的文字颜色-->
<item name="android:textColor">#B0C4DE</item>
<!--RadioButton checkbox等控件的文字-->
<item name="android:textColorPrimaryDisableOnly">#1C71A9</item>
</style>
这些默认的样式颜色,大家有时间可以自己试验一下,看看效果。
使用方式
这个在Activity的Style中添加对应的Item就可以了
比如:这个styles.xml的代码
<resources>
<!-- Base application theme. -->
<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
<!-- Customize your theme here. -->
<item name="colorPrimary">@color/colorPrimary</item>
<item name="colorPrimaryDark">@color/colorPrimaryDark</item>
<item name="colorAccent">#f00</item>
</style>
</resources>
colorPrimary设置了普通标题栏背景的默认颜色
colorPrimaryDark设置了手机最上面的状态栏背景的默认颜色
colorAccent设置了一些控件被选中的颜色,比如CheckBox,RadioButton,SwitchCompat,ProcessBar
当然这个Style可以针对整个App,也可以针对单个Activity
有人会想说上面设置默认颜色的Item給单个控件设置Style有用吗,我试过没有用!设置后完全没有起到作用!
上面我要修改进度条ProgressBar的显示颜色,修改colorAccent就可以的,因为进度条进行中的状态肯定是选中的状态!
其实ProgressBar是可以通过改一些东西来实现单个空间的颜色改变的,后面也是实现了,但是是别人提供了一些帮助才完成的。
我这个方法是网上完全没有的,设置了相关的背景和动画,网上的方法我都试过了,基本不行或者太麻烦!
关于具体的实现后面有时间再发布出来。