自带的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进行了自定义,所以还是一步一个脚印来修改比较靠谱。