Android修改自带Setting(设置)获取焦点颜色

自带的setting获取焦点的控件使用的是以下背景

android:background="?android:attr/selectableItemBackground"
selectableItemBackground是一个带有波纹效果的背景图片,而波纹的颜色最终会调用到FrameWork的colorControlHighlight值,在res\values\themes.xml
的添加
#C6000000发现修改无效。所以通过搜寻Theme.SettingsBase在./values/themes_device_defaults.xml:737: 节点内添加
#C6000000即可

你以为这样就够了吗?其实还有一堆的问题,首先android 的设置使用了Preferences这个组件进行页面渲染,也进行了Preferences重写,所以你需要通过找到Preferences 的layout文件重新写一个layout文件。列入

java这样加这个: xxxPreference.setLayoutResource(R.layout.yout_layout);

xml加这个:android:layout=”@layout/yout_layout”

 

layout/yout_layout.xml


。。。。

 

yout_layout_bg.xml

//定义你的焦点色


//定义你的默认色

另外对话框的按钮焦点色也不明显,也进行了重新定义你需要注释掉

Settings/res/values/themes.xml

中@style/Theme.AlertDialog这行代码

总结:修改全局主题只能解决一部分问题,有些地方setting进行了自定义,所以还是一步一个脚印来修改比较靠谱。

发表回复