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_width和android:layout_height都是match_parent,没有额外的padding或margin导致内容无法填满屏幕。
这样处理后,摄像头附近的黑边应该就会消失了,游戏就能真正全屏显示啦。
内容来源于stack exchange




