Android移植-状态栏定制

发布于 2024-10-24 03:28:13 字数 253 浏览 5 评论 0原文

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

请给我一些建议 谢谢 抗体

Hi I am trying to modify the statusbar icon in android. The file, statusbar_background.9.png is to modified.
1. But could some one suggest me how to make it transparent?
As for the customization, can we resize status bar width to a relative size? means,based on number of icons present on the screen?
I am modifying the file /frameworks/base/packages/systemui/src/com/android/systemui/statusbar/statusbarservice.java

Please give me some suggestion
Thanks
Ab

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

久夏青 2024-10-31 03:28:13

我终于找到了问题的答案。
我更改了以下内容:
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);

.....
}

Finally I found the answer for my question.
I changed the following:
android:background="@drawable/statusbar_background"
to

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

inside the /framework/base/packages/systemui/res/statusbar.xml file.

For resizing the status bar need to do the following:
modify the protected void addStatusBarView() function in StatusbarService.java file with the following:

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);

.....
}
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文