2011-03-17 75 views
0

嗨我想修改Android中的状态栏图标。文件statusbar_background.9.png将被修改。 1.但是,有人可以告诉我如何使它透明吗? 至于定制,我们可以调整状态栏宽度为相对大小?是指根据屏幕上显示的图标数量? 我修改该文件/frameworks/base/packages/systemui/src/com/android/systemui/statusbar/statusbarservice.javaAndroid移植 - 状态栏定制

请给我一些建议 感谢 抗体

+0

你的问题不明确ü可以粘贴您的XML文件,并clearfy你的问题,我认为你应该使用scrollview – 2011-03-17 11:25:39

+0

嗨,我指的是Android的源代码。此外,xml文件是status_bar.xml(位于/ frameworks/base/packages/systemui/res/layout /)文件夹中。 在我的理解中,StatusbarManager.java中使用的函数是makestatusbarview()。我们需要指定它是透明的吗? – user637465 2011-03-17 15:02:42

回答

2

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

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

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

为了调整状态栏需要做到以下几点: 修改protected void addStatusBarView()功能StatusbarService.java文件有以下几点:

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

..... 
} 
+0

您在AndroidManifest.xml中指定了什么权限? – dcanh121 2012-10-19 16:41:42

+0

@ dcanh121 - 你没有,因为你不能从第三方应用程序做到这一点。正在讨论的是Android本身的源代码的修改。 – 2015-03-30 14:43:25