android 修改statusbar(二)

如何把状态栏从顶部移动到底部;

  1. Around line 345 of frameworks/base/services/java/com/android/server/status/StatusBarService.java changeGravity.TOP to Gravity.BOTTOM.
  2. Around line 1265 of frameworks/policies/base/phone/com/android/internal/policy/impl/PhoneWindowManager.java replacemDockTop = mContentTop = mCurTop = mStatusBar.getFrameLw().bottom withmContentBottom = mCurBottom = mStatusBar.getFrameLw().top.
  3. Around line 719 of frameworks/policies/base/mid/com/android/internal/policy/impl/MidWindowManager.java, replacemCurTop = mStatusBar.getFrameLw().bottom with mCurBottom = mStatusBar.getFrameLw().top.


修改PhoneStatusBar.java中的getStatusBarGravity()方法返回值
默认是Top和水平
调整上下位置

Android 2.2 和android 2.3 在源码结构上有一些变化:tatusbar 的位置的变化,2.3中 statusbar 的源码在 frameworks/base/packages/SystemUI中。

修改statusbar的背景,frameworks/base/packages/SystemUI/res/drawable-mdpi,替换 statusbar_background.9.png

调整statusbar的高度,frameworks/base/core/res/res/values/dimens.xml 中,修改 25dip 的值

调整statusbar中的日期和时钟的字体:frameworks/base/packages/SystemUI/res/layout/status_bar.xml 中,会有如下的代码
去掉statusbar中的图标,在平板开发的过程中,有一些手机的功能可能在平板上用不到,如3G功能,但是怎么样把statusbar中的3G的图标去掉呢?在 framework/base/packages/SystemUI/src/com/Android/systemui/statusbar/StatusBarPolicy.java 中会有下面的代码 mService.setIcon("phone_signal", mPhoneSignalIconId, 0); 这里是设置手机信号的图标,去掉3G信号图标只需将这个文件中的 这句话注释即可。相应的也可以修改其他的图标。

修改完之后可以直接编译SystemUI,然后push 到/system/app 中,即可看到效果。

编译 SystemUI: 在Android根目录执行 source build/envsetup.sh ,然后在根目录执行 mm SystemUI ,最后会在 out/target/product/generic/system/app 中生成一个SystemUI.apk,

adb push SystemUI.apk /system/app;

statusbar是一种服务,需要启动satusbar服务:Android 启动服务 命令: adb shell am start -n com.android.systemui/com.android.systemui.statusbar.StatusBarService,即可看到效果。

关于Android启动Activity: adb shell am start -n 包名/包名.Activity名;启动服务:adb shell am start -n 包名/包名.服务名
标签: android, statusbar

你可能感兴趣的:(android 修改statusbar(二))