如果对于android SystemUI还不够了解,

请查阅我的android SystemUI全解析

此处默认大家对于SysytemUI有足够的认知

如果想对系统NavigationBar做出改变(视需求而定) 此处我将介绍几种改变NavigationBar的方法

一、改变大小(高度)

通过 frameworks/base/policy/src/com/android/internal/policy/impl/PhoneWindowManager.j
ava
 public void setInitialDisplaySize(Display display, int width, int height, int density) {.......}



通过这个函数setInitialDisplaySize(Display display, int width, int height, int density), 我们可以发现android手机或者平板Display=FULLSCREEN-NavigationBar-StatusBar

// Width of the navigation bar when presented vertically along one sidemNavigationBarWidthForRotation[mPortraitRotation] = mNavigationBarWidthForRotation[mUpsideDownRotation] =mNavigationBarWidthForRotation[mLandscapeRotation] =mNavigationBarWidthForRotation[mSeascapeRotation] =               mContext.getResources().getDimensionPixelSize(                          com.android.internal.R.dimen.navigation_bar_width);// SystemUI (status bar) layout policyint shortSizeDp = shortSize * DisplayMetrics.DENSITY_DEFAULT / density;


这里我们不难发现NavigationBarWidth取决于com.android.internal.R.dimen.navigation_bar_width
那么我们改变frameworks\base\core\res\res\values\dimens.xml
   25dip -    48dp -    48dp -    42dp -    24dip 




改变值为 300dp

编译焼铸开机后  将会发现我们的手机或者平板将会出现巨大的惊喜 同理,如果我们将高度设为0,则可想而知出现的会是什么样子(不建议这样改动)
此时,如果我们不仅仅是单纯的想要改动NavigationBar的大小 比如,我们想要改动它的外观,此时我们应该怎么办呢 通过 

Android Frameworks层开发之SystemUI分析

我们知道mNavigationBar已经创建(mNavigationBarView =  (NavigationBarView) View.inflate(context, R.layout.navigation_bar, null);) 根据布局我们可以知道NavigationBar的样式(这里我们不贴出系统xml文件) 我们知悉NavigationBar源码位置  \frameworks\base\packages\SystemUI\src\com\android\systemui\statusbar\phone\NavigationBarView 相应的布局文件\frameworks\base\packages\SystemUI\res\layout\navigation_bar.xml 此时 如果我们隐藏系统NavigationBar.xml里面的控件,并将其改成自己的控件

更多相关文章

  1. Android(安卓)实现ListView的点击变色的实例
  2. 吐槽 - realtek 无线网卡的bug多多
  3. Android“This Handler class should be static or leaks might
  4. Android(安卓)3.0 honeycomb TextView onDraw()方法无效
  5. 【android】利用getViewTreeObserver().addOnGlobalLayoutListen
  6. Activity的onConfigurationChanged事件
  7. 轻听变色之谜-如何改变Android应用的主题色
  8. Android(安卓)使用ColorMatrix改变图片颜色
  9. android带返回按钮的自定义标题栏布局文件详解

随机推荐

  1. 五分钟学会java中的基础类型封装类
  2. 设计模式之中介者模式
  3. 数字签名的原理是什么?这篇文章给你答案(ja
  4. 面试官:手写一个希尔排序,并对其改进
  5. 设计模式之访问者模式
  6. java任务调度(1)Timer定时器(案例和源码分析
  7. 曾经风光无限的jsp技术,为什么现在很少有
  8. MTK Android(安卓)紧急号码修改
  9. 看了这么多篇红黑树文章,你理解了吗?
  10. Activity的四种加载方式