java - 用覆盖层替换库存状态栏?

标签 java android eclipse service statusbar

有一个名为StatusBar+的应用程序。它的基本作用是用自定义覆盖层替换库存状态栏。

我知道这可以通过服务和充当另一个状态栏的 View 轻松完成。

但是,我只是想知道它如何能够隐藏默认状态栏,但顶部仍然有间距,因此它不会与应用程序重叠。或者它实际上如何覆盖状态栏。我只是好奇。

谢谢

最佳答案

它实际上覆盖了常规状态栏本身。我设法自己在服务中做到了:

view= new View(context);
WindowManager.LayoutParams params = new WindowManager.LayoutParams(
        WindowManager.LayoutParams.MATCH_PARENT,
        mStatusBarHeight,
        WindowManager.LayoutParams.TYPE_SYSTEM_OVERLAY,
        WindowManager.LayoutParams.FLAG_LAYOUT_INSET_DECOR |  WindowManager.LayoutParams.FLAG_LAYOUT_IN_SCREEN,
        PixelFormat.TRANSLUCENT);
params.gravity = Gravity.TOP;
view.setLayoutParams(params);
view.setBackgroundColor(DEFAULT_TINT_COLOR);        

view.setVisibility(View.VISIBLE);
view.setBackgroundColor(0x80FF0000);

WindowManager wm = (WindowManager) context.getSystemService(Context.WINDOW_SERVICE);

wm.addView(view, params);

有关更多信息,请参阅 http://www.piwai.info/chatheads-basics/

关于java - 用覆盖层替换库存状态栏?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9796462/

相关文章:

java - 在 JUnit 规则运行之前使用 Spring TestExecutionListener 初始化状态

java - Android 上的滑动导航示例?

android - 添加一个 AnimationDrawable 到 BottomNavigationView

android - 如何在 Android 智能手机中使用加速度计传感器查找位移距离?

regex - Eclipse 中的替换问题

eclipse - 如何使用 Eclipse 设置 tomcat?

android - 适用于 Windows 7 64 位的 ADT Bundle 缺少 JRE 文件夹并且无法运行 - 我试过了

java - 如何在 Android 中将 Firebase 子节点从一个节点移动到另一个节点?

Java - 如何沙箱 ScriptEngineManager?

ListView 的 ArrayList 上的 Android 空指针异常