android5.1系统TvSettings为选择项添加背景颜色

来源:互联网 发布:深圳java薪水 编辑:程序博客网 时间:2024/06/06 10:52

这是本人在CSDN写的第一篇博客,初入系统级应用。在此主要作为学习交流,下面进入主题:
本来的TvSettings图标是一种灰白的基调,包括里面的选择项item也是无背景,在遥控器的选择下,item的聚焦并不明显,上头要求改改,下面是主要的修改方法:
1.目录:packages\apps\TvSettings\Settings\res\values下colors.xml文件:
#FF4A4F51中改变参数;
具体颜色根据要求,我的是#00B366,图标的背景呈现草绿色。
2.更改选择项item聚焦背景:
1)目录:packages\apps\TvSettings\Settings\src\com\android\tv\settings\dialog\DialogActionAdapter.java中@Override
public void onFocusChange(View v, boolean hasFocus) {
if (hasFocus) {
mSelectedView = v;
v.setBackgroundResource(R.color.normals);
changeFocus(v, true /* hasFocus /, true / shouldAnimate */);
if (mOnFocusListener != null) {
mOnFocusListener.onActionFocused(
((ActionViewHolder) v.getTag(R.id.action_title)).getAction());
}
} else {
if (mSelectedView == v) {
mSelectedView = null;
}
changeFocus(v, false /* hasFocus /, true / shouldAnimate */);
v.setBackgroundResource(0);
}
}
2)目录:packages\apps\TvSettings\Settings\src\com\android\tv\settings\dialog\SettingsLayoutAdapter.java中
@Override
public void onFocusChange(View v, boolean hasFocus) {
if (hasFocus) {
mSelectedView = v;
v.setBackgroundResource(R.color.normals);
if (mNoAnimateMode) {
mNoAnimateMode = false;
changeFocus(v, true /* hasFocus /, false / shouldAnimate */);
} else {
changeFocus(v, true /* hasFocus /, true / shouldAnimate */);
if (mOnFocusListener != null && mFocusListenerEnabled) {
// We still call onActionFocused so that listeners can clear state if they
// want.
mOnFocusListener.onActionFocused(
((LayoutRowViewHolder) v.getTag(R.id.action_title)).getLayoutRow());
}
}
} else {
if (mSelectedView == v) {
mSelectedView = null;
}
v.setBackgroundResource(0);
changeFocus(v, false /* hasFocus /, true / shouldAnimate */);
}
}
3)目录:packages\apps\TvSettings\Settings\src\com\android\tv\settings\dialog\old\ActionAdapter.java中
private void changeFocus(View v, boolean hasFocus, boolean shouldAnimate) {
if (v == null) {
return;
}
if (hasFocus){
v.setBackgroundResource(R.color.normals);
}else{
v.setBackgroundResource(0);
}
添加setBackgroundResource方法,改变选中时的背景颜色,R.color.normals的值具体定义。
android5.1系统中与之前的传统布局不一样,之前的大部分选择Button按键,而5.1的更具简洁化,点击时添加了页面的动态效果等。

1 0