【问题标题】:Android porting - Status Bar customizationAndroid 移植 - 状态栏自定义
【发布时间】:2011-03-17 10:41:06
【问题描述】:

您好,我正在尝试修改 android 中的状态栏图标。文件 statusbar_background.9.png 将被修改。 1.但是有人可以建议我如何使它透明吗? 至于自定义,我们可以将状态栏宽度调整为相对大小吗?意思是,基于屏幕上出现的图标数量? 我正在修改文件/frameworks/base/packages/systemui/src/com/android/systemui/statusbar/statusbarservice.java

请给我一些建议 谢谢 抗体

【问题讨论】:

  • 你的问题不清楚可以粘贴你的xml文件并清除你的问题,我认为你应该使用滚动视图
  • 您好,我指的是android的源代码。 xml 文件也是 status_bar.xml(在 /frameworks/base/packages/systemui/res/layout/ 中显示)文件夹。在我的理解中,StatusbarManager.java中使用的函数是makestatusbarview()。我们需要在哪里指定它是透明的?

标签: android porting statusbar


【解决方案1】:

我终于找到了问题的答案。
我更改了以下内容:
android:background="@drawable/statusbar_background"

android:background="@android:color/transparent"

/framework/base/packages/systemui/res/statusbar.xml 文件中。

要调整状态栏的大小需要执行以下操作: 修改StatusbarService.java文件中的protected void addStatusBarView()函数如下:

WindowManager.LayoutParams lp = new WindowManager.LayoutParams(
                //abhi 17 mar ViewGroup.LayoutParams.MATCH_PARENT,
                mwidth, //specify the width of statusbar.. 
                height,
                WindowManager.LayoutParams.TYPE_STATUS_BAR,
                WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE
                    | WindowManager.LayoutParams.FLAG_TOUCHABLE_WHEN_WAKING,

                PixelFormat.TRANSPARENT
                );
        // abhi 15 march lp.gravity = Gravity.TOP | Gravity.FILL_HORIZONTAL;
        lp.gravity = Gravity.TOP | Gravity.LEFT;
        lp.setTitle("StatusBar");
        //lp.gravity = Gravity.CENTER;//abhi 18 march
        lp.windowAnimations = com.android.internal.R.style.Animation_StatusBar;
        lp.x = 25; // to move status bar to x position
        WindowManagerImpl.getDefault().addView(view, lp);

.....
}

【讨论】:

  • 你在 AndroidManifest.xml 中指定了什么权限?
  • @dcanh121 - 你不这样做,因为你不能从第 3 方应用程序中执行此操作。正在讨论的是对Android本身源代码的修改。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-05-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多