You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

Android Studio全屏游戏中如何移除摄像头附近侧边的黑边

Android Studio全屏游戏中如何移除摄像头附近侧边的黑边

看起来你碰到的是异形屏(挖孔/刘海屏)适配的问题,那个黑边其实是系统为了避开前置摄像头预留的安全区域,而你的游戏没做好这类屏幕的适配才会出现这种情况——毕竟其他APP正常,说明它们都处理了这个问题。

给你几个针对性的解决步骤:

  • 首先在AndroidManifest.xml里声明你的应用支持高宽比和异形屏:

    <application ...>
        <meta-data
            android:name="android.max_aspect"
            android:value="2.4" />
        <meta-data
            android:name="android.notch_support"
            android:value="true" />
        ...
    </application>
    

    这一步是告诉系统:你的应用可以适配更高的屏幕比例,并且支持在异形屏区域显示内容。

  • 然后在Activity的onCreate方法里,补充设置让窗口延伸到挖孔/刘海区域:

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        // 完善你的全屏代码
        getWindow().getDecorView().setSystemUiVisibility(
                View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY
                | View.SYSTEM_UI_FLAG_FULLSCREEN
                | View.SYSTEM_UI_FLAG_HIDE_NAVIGATION
        );
        
        // 新增适配异形屏的代码
        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.P) {
            WindowManager.LayoutParams lp = getWindow().getAttributes();
            // 允许窗口延伸到屏幕的挖孔/刘海区域
            lp.layoutInDisplayCutoutMode = WindowManager.LayoutParams.LAYOUT_IN_DISPLAY_CUTOUT_MODE_SHORT_EDGES;
            getWindow().setAttributes(lp);
        }
        
        setContentView(R.layout.your_game_layout);
    }
    

    这里的LAYOUT_IN_DISPLAY_CUTOUT_MODE_SHORT_EDGES会让你的游戏窗口直接覆盖挖孔区域,不会预留黑边。

  • 最后检查你的游戏布局:确保根布局的android:layout_widthandroid:layout_height都是match_parent,没有额外的paddingmargin导致内容无法填满屏幕。

这样处理后,摄像头附近的黑边应该就会消失了,游戏就能真正全屏显示啦。

内容来源于stack exchange

火山引擎 最新活动