Activity 未延伸到横向切口下方
Activity not extended below the cutout in landscape
在我的 activity 中,我使用以下代码打开/关闭全屏。全屏是指隐藏/显示状态栏。问题发生在有切口(有摄像头的地方)并且状态栏可见且处于横向的设备上。它在状态栏隐藏或/和纵向时扩展。
if(aStatus){ // Hide
getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN , WindowManager.LayoutParams.FLAG_FULLSCREEN);
} else {
getWindow().clearFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN);
}
如图所示,左边的白色区域应该被覆盖。
https://i.stack.imgur.com/7va88.png
compileSdkVersion 29
buildToolsVersion '29.0.3'
minSdkVersion 21
targetSdkVersion 29
选定的解决方案将获得 50 积分奖励。谢谢!
这里是修复。根据需要进行调整。
- 创建目标颜色或图像的 BitmapDrawable。
- 在 activity 的 window 上设置可绘制对象。
示例:
Bitmap bitmap = Bitmap.createBitmap(24, 24, Bitmap.Config.ARGB_8888);
bitmap.eraseColor(Color.MAGENTA);
BitmapDrawable bitmapDrawable = new BitmapDrawable(getResources(), bitmap);
getWindow().setBackgroundDrawable(bitmapDrawable);
另一个例子:
Bitmap bitmap = Bitmap.createBitmap(24, 24, Bitmap.Config.ARGB_8888);
Canvas canvas = new Canvas(bitmap);
canvas.drawColor(Color.MAGENTA);
BitmapDrawable bitmapDrawable = new BitmapDrawable(getResources(), bitmap);
getWindow().setBackgroundDrawable(bitmapDrawable);
均在 Activity.onCreate 中进行了测试。
在我的 activity 中,我使用以下代码打开/关闭全屏。全屏是指隐藏/显示状态栏。问题发生在有切口(有摄像头的地方)并且状态栏可见且处于横向的设备上。它在状态栏隐藏或/和纵向时扩展。
if(aStatus){ // Hide
getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN , WindowManager.LayoutParams.FLAG_FULLSCREEN);
} else {
getWindow().clearFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN);
}
如图所示,左边的白色区域应该被覆盖。
https://i.stack.imgur.com/7va88.png
compileSdkVersion 29
buildToolsVersion '29.0.3'
minSdkVersion 21
targetSdkVersion 29
选定的解决方案将获得 50 积分奖励。谢谢!
这里是修复。根据需要进行调整。
- 创建目标颜色或图像的 BitmapDrawable。
- 在 activity 的 window 上设置可绘制对象。
示例:
Bitmap bitmap = Bitmap.createBitmap(24, 24, Bitmap.Config.ARGB_8888);
bitmap.eraseColor(Color.MAGENTA);
BitmapDrawable bitmapDrawable = new BitmapDrawable(getResources(), bitmap);
getWindow().setBackgroundDrawable(bitmapDrawable);
另一个例子:
Bitmap bitmap = Bitmap.createBitmap(24, 24, Bitmap.Config.ARGB_8888);
Canvas canvas = new Canvas(bitmap);
canvas.drawColor(Color.MAGENTA);
BitmapDrawable bitmapDrawable = new BitmapDrawable(getResources(), bitmap);
getWindow().setBackgroundDrawable(bitmapDrawable);
均在 Activity.onCreate 中进行了测试。