• android 全屏FullScreen的配置


    全屏的设置方式 随着api的升级 设置的api 也改变了

    方式1: 代码的方式

        private fun hideSystemUI() {
        	//这个必须设置 否则不生效
            if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.P) {
                window.attributes.layoutInDisplayCutoutMode = WindowManager.LayoutParams.LAYOUT_IN_DISPLAY_CUTOUT_MODE_SHORT_EDGES
            }
            WindowCompat.setDecorFitsSystemWindows(window, false)
            WindowInsetsControllerCompat(window, window.decorView).let { controller ->
                controller.hide(WindowInsetsCompat.Type.systemBars())
                controller.systemBarsBehavior = WindowInsetsControllerCompat.BEHAVIOR_SHOW_TRANSIENT_BARS_BY_SWIPE
            }
            //低于kitkat的方式就没写 需要很低版本的可以谷歌
        }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12

    方式2: xml配置方式

    在themes的xml文件写 新建主题

        <style name="ThemeLauncher" parent="Theme.AppCompat.Light.NoActionBar">
            <item name="android:windowTranslucentStatus">true</item>
            <item name="android:statusBarColor">@color/co_transport</item>
            <item name="android:windowNoTitle">true</item>
            <item name="android:windowActionBar">false</item>
            <item name="android:windowFullscreen">true</item>
            <item name="android:windowContentOverlay">@null</item>
            <item name="android:navigationBarColor">@color/co_transport</item>
        </style>
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
        <color name="co_transport">#00000000</color>
    
    • 1

    新建values-v27文件夹 拷贝上一步代码 同时添加 android:windowLayoutInDisplayCutoutMode
    刘海屏的处理。

    官方是这么解释的:

    Android 还允许您控制是否在刘海区域内显示内容。窗口布局属性 layoutInDisplayCutoutMode 控制您的内容如何呈现在刘海区域中。您可以将 layoutInDisplayCutoutMode 设为以下某个值:
    LAYOUT_IN_DISPLAY_CUTOUT_MODE_DEFAULT - 这是默认行为,如上所述。在竖屏模式下,内容会呈现到刘海区域中;但在横屏模式下,内容会显示黑边。
    LAYOUT_IN_DISPLAY_CUTOUT_MODE_SHORT_EDGES - 在竖屏模式和横屏模式下,内容都会呈现到刘海区域中。
    LAYOUT_IN_DISPLAY_CUTOUT_MODE_NEVER - 内容从不呈现到刘海区域中。
    您可以通过编程或在 Activity 中设置样式来设置刘海模式。以下示例定义了一种样式,您可以使用它将 LAYOUT_IN_DISPLAY_CUTOUT_MODE_SHORT_EDGES 属性应用到 Activity。
    
    • 1
    • 2
    • 3
    • 4
    • 5

    所以xml配置如下:

        <style name="ThemeLauncher" parent="Theme.AppCompat.Light.NoActionBar">
            <item name="android:windowTranslucentStatus">true</item>
            <item name="android:statusBarColor">@color/co_transport</item>
            <item name="android:navigationBarColor">@color/co_transport</item>
            <item name="android:windowNoTitle">true</item>
            <item name="android:windowActionBar">false</item>
            <item name="android:windowFullscreen">true</item>
            <item name="android:windowContentOverlay">@null</item>
            
            <item name="android:windowLayoutInDisplayCutoutMode">shortEdges</item>
        </style>
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
  • 相关阅读:
    Android端如何实现拉取RTSP/RTMP流并回调YUV/RGB数据然后注入轻量级RTSP服务?
    RedisDesktopManager远程连接redis
    工地反光衣识别检测系统
    外包公司干了2个月,技术倒退两年...
    基于FFMPEG+SDL的简单的视频播放器分析
    大数据趣味学习探讨(一):学习框架的重要性
    标准lua和luajit的一个代码测试对比
    解析java中的缓冲字符输入流
    【算法基础】筛质数
    webpack 配置
  • 原文地址:https://blog.csdn.net/u010436867/article/details/125514619