android4.4 动态全局隐藏显示StatusBar
2015-10-24 14:55
525 查看
WindowManagerService.java添加如下函数
frameworks/base/core/java/android/view/IWindowManager.aidl添加
void showStatusBarHeight(boolean enable);
WindowManagerPolicy.java添加
public void setStatusBarHeightShow(boolean enabled);
PhoneWindowManager.java添加
PhoneStatusBar.java
到此framework内代码添加完毕,在自己需要的时候发送广播”android.intent.action.DISPLAY_STATUS_BAR”和”android.intent.action.HIDE_STATUS_BAR”就能全局显示和隐藏statusbar。
public void showStatusBarHeight(boolean enable){ //mPolicy引用PhoneWindowManager对象 mPolicy.setStatusBarHeightShow(enable); }
frameworks/base/core/java/android/view/IWindowManager.aidl添加
void showStatusBarHeight(boolean enable);
WindowManagerPolicy.java添加
public void setStatusBarHeightShow(boolean enabled);
PhoneWindowManager.java添加
public void setStatusBarHeightShow(boolean enabled){ if(enabled){ Resources mResources = mContext.getResources(); mStatusBarHeight = mResources.getDimensionPixelSize(com.android.internal.R.dimen.status_bar_height); } else{ mStatusBarHeight = 0; } }
PhoneStatusBar.java
makeStatusBarView()函数内修改 IntentFilter filter = new IntentFilter(); filter.addAction(Intent.ACTION_CLOSE_SYSTEM_DIALOGS); filter.addAction(Intent.ACTION_SCREEN_OFF); filter.addAction(Intent.ACTION_SCREEN_ON); filter.addAction(ACTION_DEMO); //wwd add filter.addAction("android.intent.action.DISPLAY_STATUS_BAR"); filter.addAction("android.intent.action.HIDE_STATUS_BAR"); //wwd add private BroadcastReceiver mBroadcastReceiver = new BroadcastReceiver() { else if (action.equals("android.intent.action.DISPLAY_STATUS_BAR")) { mStatusBarWindow.setVisibility(View.VISIBLE); try { mWindowManagerService.showStatusBarHeight(true); } catch (RemoteException ex) { } } else if (action.equals("android.intent.action.HIDE_STATUS_BAR")) { Log.i("wwd","mStatusBarView.isAttachedToWindow"); mStatusBarWindow.setVisibility(View.GONE); try { mWindowManagerService.showStatusBarHeight(false); } catch (RemoteException ex) { } } }
到此framework内代码添加完毕,在自己需要的时候发送广播”android.intent.action.DISPLAY_STATUS_BAR”和”android.intent.action.HIDE_STATUS_BAR”就能全局显示和隐藏statusbar。
相关文章推荐
- Android 访问WebService的方法
- Android进阶之数据本地化集合list
- [转]android 如何修改对应时区的夏令时、冬令时?
- android ScrollView中嵌套listview listview可点击处理,可展开
- Android客户端与服务器之间的通信
- 使用javah生成.h文件, 出现无法访问android.app,Activity的错误的解决办法
- Activity组件启动过程
- 在Android下初始化Native OpenGL ES
- Android&iOS安装包更新笔记
- android图片特效
- Android开发重启adb的批处理
- Android屏幕适配全攻略(最权威的官方适配指导)
- Android应用程序线程的消息循环模型
- .gradle 文件简单介绍
- Android docs4.3API
- Android编码规范02
- Android XUtils的使用
- android ListView几个比较特别的属性
- Android自定义view之弹出式dialog
- Android消息机制深入了解