[Android实例] Android 4.0 平板全屏实现(一)

来源:互联网 发布:贪吃蛇跟随算法 编辑:程序博客网 时间:2024/05/18 12:02
   由于公司最近要做一个播放全屏的DEMO,无奈发现在平板上没有办法实现真正的全屏。查了不少资料,始终没有找到有效的方法,由于平板的系统也是我们开发的,有源码,一切就可以控制。。
     
      本着码农的钻研精神,查找相关资料,发现一个可行但是不是特别完美的方法。(原来平板的 复合栏 的位子变成黑条
      
      开工之前,首先要预习一下StatusBarManager的使用

      在了解了 StatusBarManager 的相关使用之后,就可以动手开工调用相关代码去实现全屏。
      [mw_shl_code=java,true]private StatusBarManager mStatusBarManager;

        public static final int hideMask = StatusBarManager.DISABLE_EXPAND
                        | StatusBarManager.DISABLE_BACK
                        | StatusBarManager.DISABLE_NOTIFICATION_ICONS
                        | StatusBarManager.DISABLE_NOTIFICATION_ALERTS
                        | StatusBarManager.DISABLE_NOTIFICATION_TICKER
                        | StatusBarManager.DISABLE_SYSTEM_INFO
                        | StatusBarManager.DISABLE_NAVIGATION
                        | StatusBarManager.DISABLE_CLOCK;
[/mw_shl_code]
     全屏:
     [mw_shl_code=java,true]mStatusBarManager.disable(hideMask);[/mw_shl_code]
     非全屏:
     [mw_shl_code=java,true]     mStatusBarManager.disable(StatusBarManager.DISABLE_NONE);[/mw_shl_code]
     通过上面两句,可以实现平板导航栏的显示/隐藏。但是,需要注意的是,要调用StatusBarManager的disable方法,应用的签名必须是 android.uid.system.而 android.uid.system 签名的应用又不能访问sdcard的相关内容,也就是说,需要将导航栏的显隐与video播放的模块分开,需要两个apk.一个的签名为android.uid.system 负责处理导航栏的显隐,另外一个apk则非system签名做video的播放。笔者所做的是,将显隐的功能放到一个 service 里面,然后在需要显隐的地方通过调用 startService 传参数给 service 做相关处理。附件中有我所写的示例。
    值得注意的是,一定要将显隐导航栏控制得非常好,不然就会出现导航栏永远不可见的情况。。
0 0
原创粉丝点击