ROM定制开发,需要更改Settings界面导航栏与应用界面之间的分割线,本以为是在SystemUI,找了很久也没有找到,其实最后实在DecorView中的SetColor中动态设置的。
/frameworks/base/core/java/com/android/internal/policy/DecorView.java
private static void setColor(View v, int color, int dividerColor, boolean verticalBar,
boolean seascape) {
if (dividerColor != 0) {
final Pair<Boolean, Boolean> dir = (Pair<Boolean, Boolean>) v.getTag();
if (dir == null || dir.first != verticalBar || dir.second != seascape) {
final int size = Math.round(
TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, 1,
v.getContext().getResources().getDisplayMetrics()));
// Use an inset to make the divider line on the side that faces the app.
final InsetDrawable d = new InsetDrawable(new ColorDrawable(color),
verticalBar && !seascape ? size : 0,
!verticalBar ? size : 0,
verticalBar && seascape ? size : 0, 0);
v.setBackground(new LayerDrawable(new Drawable[] {
new ColorDrawable(dividerColor), d }));
v.setTag(new Pair<>(verticalBar, seascape));
} else {
final LayerDrawable d = (LayerDrawable) v.getBackground();
final InsetDrawable inset = ((InsetDrawable) d.getDrawable(1));
((ColorDrawable) inset.getDrawable()).setColor(color);
((ColorDrawable) d.getDrawable(0)).setColor(dividerColor);
}
} else {
v.setTag(null);
v.setBackgroundColor(color);
}
}
TypedValue.COMPLEX_UNIT_DIP, 1,此处就是设置大小处