Rom开发 Settings界面导航栏与应用直接分割线如何更改大小与样式

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,此处就是设置大小处

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值