由于公司最近要做一个播放全屏的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 做相关处理。附件中有我所写的示例。
值得注意的是,一定要将显隐导航栏控制得非常好,不然就会出现导航栏永远不可见的情况。。。
本着码农的钻研精神,查找相关资料,发现一个可行但是不是特别完美的方法。( 原来平板的 复合栏 的位子变成黑条)
开工之前,首先要预习一下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 做相关处理。附件中有我所写的示例。
值得注意的是,一定要将显隐导航栏控制得非常好,不然就会出现导航栏永远不可见的情况。。。