文档章节

Android平板开发永久实现全屏的方法

22m
 22m
发布于 2017/01/10 17:30
字数 437
阅读 50
收藏 0
似乎Android4.x.x好像要手动授权,其他的Android系统就不太清楚了 

 //实现让状态栏恢复
 public static void showBar() {
        try {
            String command;
            command = "LD_LIBRARY_PATH=endorb:/systemb am startservice -n com.android.systemui/.SystemUIService";
            ArrayList<String> envlist = new ArrayList<String>();
            Map<String, String> env = System.getenv();
            for (String envName : env.keySet()) {
                envlist.add(envName + "=" + env.get(envName));
            }
            String[] envp = envlist.toArray(new String[0]);
            Process proc = Runtime.getRuntime().exec(
                    new String[]{"su", "-c", command}, envp);
            proc.waitFor();
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}
//隐藏状态栏实现全屏
public static void closeBar() {
    try {
        String command;
        command = "LD_LIBRARY_PATH=endorb:/systemb service call activity 42 s16 com.android.systemui";
        ArrayList<String> envlist = new ArrayList<String>();
        Map<String, String> env = System.getenv();
        for (String envName : env.keySet()) {
            envlist.add(envName + "=" + env.get(envName));
        }
        String[] envp = envlist.toArray(new String[0]);
        Process proc = Runtime.getRuntime().exec(
                new String[]{"su", "-c", command}, envp);
        proc.waitFor();
    } catch (Exception ex) {
        ex.printStackTrace();
    }
}

上面的在android4.4上面只需要点击获取权限即可实现要求,而在android5.1上面就不行。下面提供一种比上面更好的方法:

public void toggleHideyBar() {

        // BEGIN_INCLUDE (get_current_ui_flags)  
        // The UI options currently enabled are represented by a bitfield.  
        // getSystemUiVisibility() gives us that bitfield.  
        int uiOptions = getWindow().getDecorView().getSystemUiVisibility();
        int newUiOptions = uiOptions;
        // END_INCLUDE (get_current_ui_flags)  
        // BEGIN_INCLUDE (toggle_ui_flags)  
        boolean isImmersiveModeEnabled =
                ((uiOptions | View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY) == uiOptions);
        if (isImmersiveModeEnabled) {
            Log.i("123", "Turning immersive mode mode off. ");
        } else {
            Log.i("123", "Turning immersive mode mode on.");
        }

        // Navigation bar hiding:  Backwards compatible to ICS.  
        if (Build.VERSION.SDK_INT >= 14) {
            newUiOptions ^= View.SYSTEM_UI_FLAG_HIDE_NAVIGATION;
        }

        // Status bar hiding: Backwards compatible to Jellybean  
        if (Build.VERSION.SDK_INT >= 16) {
            newUiOptions ^= View.SYSTEM_UI_FLAG_FULLSCREEN;
        }

        // Immersive mode: Backward compatible to KitKat.  
        // Note that this flag doesn't do anything by itself, it only augments the behavior  
        // of HIDE_NAVIGATION and FLAG_FULLSCREEN.  For the purposes of this sample  
        // all three flags are being toggled together.  
        // Note that there are two immersive mode UI flags, one of which is referred to as "sticky".  
        // Sticky immersive mode differs in that it makes the navigation and status bars  
        // semi-transparent, and the UI flag does not get cleared when the user interacts with  
        // the screen.  
        if (Build.VERSION.SDK_INT >= 18) {
            newUiOptions ^= View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY;
        }

       //getWindow().getDecorView().setSystemUiVisibility(newUiOptions);//上边状态栏和底部状态栏滑动都可以调出状态栏  
        getWindow().getDecorView().setSystemUiVisibility(4108);//这里的4108可防止从底部滑动调出底部导航栏  
        //END_INCLUDE (set_ui_flags)  
    }

 

 

 

© 著作权归作者所有

22m

22m

粉丝 0
博文 39
码字总数 43302
作品 0
成都
程序员
私信 提问
糊里糊涂学Android(2)——Activity隐藏标题及全屏

在大部分情况下,我们开发或使用的App都不需要Activity中原本的标题,都有自己独特或个性的标题栏,甚至有些App是全屏的。下面就来探究一下都有哪几种方法可以实现隐藏标题或全屏。 1.修改A...

笑缘心归
2014/03/17
0
0
不仅是 64 位 Android L 还有这 9 大亮点

Android L无疑是谷歌今年最重要的新产品之一,其战略意义重大,代表着谷歌统一多种设备平台的决心。显然,Android L有很多值得我们期待和兴奋的地方,以下是最主要的9点: Material Design界...

oschina
2014/08/11
5.3K
29
React-Native 实现全屏展示的 Modal 弹窗

1. 背景 最近公司的项目 Android 端的 UI 效果也改成了沉浸式状态栏的效果,在使用中突然发现一个问题,之前的弹窗组件(RN 的 Modal)无法是实现全屏展示,类似的效果如下 实在是太丑了有木...

这真不是玩笑
04/04
0
0
android手机主分辨率参考表

对于Android游戏开发我们不得不像iPhone那样思考兼容Android平板电脑,对于苹果要考虑iPad、iPhone 3GS和iPhone 4等屏幕之间的兼容性,对于几乎所有的分辨率Android123总结了大约超过20中粉笔...

郏高阳
2012/11/15
0
0
android 设置全屏的两种方法

android要实现全屏的效果,如做游戏开发时全屏,可通过在Activity的setContentView前设置或通过Activity的xml配置来实现 1.Activity中代码实现: public class MainActivity extends Activi...

辉兔狼
2012/06/04
0
0

没有更多内容

加载失败,请刷新页面

加载更多

前嗅教程:如何获取精准客源,提高销量

经常有人问嗅嗅,我是XX行业的,大数据能帮我做什么? • 可以给我带来客源吗? • 可以提高我的销量吗? • 可以增加我的利润吗? 今天嗅嗅就以生鲜供货为例,为大家讲一讲外卖平台那些事~...

forespider
26分钟前
1
0
浮窗插件

<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>移动窗口</title> <style> body { margin: 0; padding: 0; width: 100%; height: 1000px; background: #eee; } /*示......

流年那么伤
30分钟前
2
0
关于 Jenkins master 共享 JENKINS_HOME 目录的实验

本文首发于:Jenkins 中文社区 作者:翟志军 审校:王冬辉,linuxsuren Jenkins master 的高可用是个老大难的问题。和很多人一样,笔者也想过两个 Jenkins master 共享同一个 JENKINS_HOME 的...

Jenkins中文社区
37分钟前
3
0
【重构】Spring Cloud OAuth 无Token调用源码封装

背景 重构-改善既有代码的设计,重构的目的是是软件更容易被理解和修改。 书接上回Spring Security OAuth 微服务内部Token传递的源码解析,本篇主要无token 调用过程中,代码的不断完善及其重...

冷冷gg
43分钟前
26
0
watchOS更新后 Apple Watch 4心电图功能已开始支持欧洲用户

苹果在发布 Apple Watch 4 系列时也发布了 ECG(心电图)功能,但这项功能仅适用于在美版 Apple Watch。对于其他地区的用户来说,访问该功能的唯一途径是在美国购买该设备。不过当 watchOS ...

linuxCool
52分钟前
3
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部