android 状态栏背景修改为透明
图标和背景图片文件说明:
systemUI.APK里面的:
statusbar_background.9.png状态栏背景图片文件(状态栏颜色透明修改)
status_bar_background.9.png 下拉栏背景图片文件
status_bar_close_on.9.png 下拉栏底部图片文件
title_bar_portrait.9.png 下拉栏顶栏图片文件
1. 请添加半透明的图片资源,例如:statusbar_background.9.png,到路径
alps\frameworks\base\packages\SystemUI\res\drawable-hdpi 下。
2. 请修改status_bar.xml,将其中的android:background="@drawable/status_bar_background 修改为
android:background="@drawable/statusbar_background。
3. 请修改StatusBarService.java的addStatusBarView()方法,将PixelFormat.RGBX_8888修改为
PixelFormat.TRANSLUCENT。
4. 请在StatusBarService.java的makeStatusBarView(Context context)方法中注册一个
BroadcastReceiver接收自定义的intent,监控是否在Launcher界面。
5. 请在Launche.java添加onWindowFocusChanged (boolean hasWindowFocus)方法,如果此方法已有,请跳过
此步骤。
6. 请修改Launcher.java的onWindowFocusChanged (boolean hasWindowFocus)方法:如果hasWindowFocus为
true且!mAllAppsGrid.isVisible()为true,发送设置状态栏背景为透明的intent,StatusBarService的BroadcastReceiver接
收到这个intent,调用mStatusBarView.reloadBackgroundResource(R.drawable.xxxx)将背景设置为半透明背景;否则
,发送设置状态栏背景为黑色的intent,StatusBarService的BroadcastReceiver接收到这个intent,调用
mStatusBarView.reloadBackgroundResource(R.drawable.xxxx)将背景设置为黑色背景。
7. 请在Launcher.java的showAllApps(boolean animated) 方法中发送设置状态栏背景为黑色的intent,
StatusBarService的BroadcastReceiver接收到这个intent,调用
mStatusBarView.reloadBackgroundResource(R.drawable.xxxx)将背景设置为黑色背景。
8. 请在Launcher.java的closeAllApps(boolean animated)方法中发送设置状态栏背景为透明的intent,
StatusBarService的BroadcastReceiver接收到这个intent,调用
mStatusBarView.reloadBackgroundResource(R.drawable.xxxx)将背景设置为半透明背景。
Android 4.0
1. 请添加半透明的图片资源,例如:statusbar_background.9.png,到路径
alps\frameworks\base\packages\SystemUI\res\drawable-hdpi 下。
2. 如果双卡CU项目请修改zzz_status_bar_gemini_cu.xml,如果是双卡非CU项目请修改
zzz_status_bar_gemini.xml,如果是单卡项目请修改status_bar.xml,将其中的
android:background="@drawable/status_bar_background 修改为
android:background="@drawable/statusbar_background。
3. 请修改StatusBar.java的start()方法,将PixelFormat.RGB_565修改为PixelFormat.TRANSLUCENT。
4. 请在PhoneStatusBar.java的makeStatusBarView(Context context)方法中注册一个BroadcastReceiver接收自定
义的intent,监控是否在Launcher界面。
5. 请在Launcher.java添加onWindowFocusChanged (boolean hasWindowFocus)方法,如果此方法已有,请跳过
此步骤。
6. 请修改Launcher.java的onWindowFocusChanged (boolean hasWindowFocus)方法:如果hasWindowFocus为
true且!isAllAppsCustomizeOpen()为true,发送设置状态栏背景为透明的intent,PhoneStatusBar的BroadcastReceiver
接收到这个intent,调用mStatusBarView.setBackgroundResource(R.drawable.xxxx)将背景设置为半透明背景;否则
,发送设置状态栏背景为黑色的intent,PhoneStatusBar的BroadcastReceiver接收到这个intent,调用
mStatusBarView.setBackgroundResource(R.drawable.xxxx)将背景设置为黑色背景。
7. 请在Launcher.java的showAllApps(boolean animated) 方法中发送设置状态栏背景为黑色的intent,
PhoneStatusBar的BroadcastReceiver接收到这个intent,调用
mStatusBarView.setBackgroundResource(R.drawable.xxxx)将背景设置为黑色背景。
8. 请在Launcher.java的showWorkspace(boolean animated)方法中发送设置状态栏背景为透明的intent,
PhoneStatusBar的BroadcastReceiver接收到这个intent,调用
mStatusBarView.setBackgroundResource(R.drawable.xxxx)将背景设置为半透明背景。