Android:游戏侧面有黑条(仅在屏幕截图中)
Posted
技术标签:
【中文标题】Android:游戏侧面有黑条(仅在屏幕截图中)【英文标题】:Android: Game has black bar on the side (In screenshot only) 【发布时间】:2021-12-23 04:28:02 【问题描述】:截图如下:https://i.imgur.com/NliL3Aq.jpg 我正在处理屏幕尺寸问题。
当我使用旧手机(galaxy S7)时,这个黑条不存在。但是在我的新机(Poco F3, 2400x1080p)上有这个黑条。
它在游戏中不可见!仅在屏幕截图上,我觉得这很奇怪。最大的问题是,现在右边的 UI 已经离开屏幕一半,不会完全显示出来。
我试过 display.getRealSize(screenSize);它提供正确的 1080x2400p res。如果我尝试 display.getHeight(已弃用),我会得到一个奇怪的较小值,我不知道手机从哪里得到它。通过使用它,游戏仍然是全屏的,但右侧的 UI 显示得太远了,而不是太少了。
我想我的问题是:定义屏幕尺寸的最佳位置是什么?有没有办法摆脱那个黑条?我是否必须禁用手机的某种隐形底栏?还是屏幕实际上比像素小?伙计,这有点令人沮丧。
public void setScreenSize(Context context)
int x, y, orientation = context.getResources().getConfiguration().orientation;
WindowManager wm = ((WindowManager)
context.getSystemService(Context.WINDOW_SERVICE));
Display display = wm.getDefaultDisplay();
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB_MR2)
Point screenSize = new Point();
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN_MR1)
display.getRealSize(screenSize);
x = screenSize.x;
y = screenSize.y;
else
display.getSize(screenSize);
x = screenSize.x;
y = screenSize.y;
else
x = display.getWidth();
y = display.getHeight();
screenwidth = x;
screenheight = y;
Point screenSize = new Point();
display.getRealSize(screenSize);
screenheight=screenSize.y;
screenwidth=screenSize.x;
Log.d("screensize", "w "+screenwidth);
Log.d("screensize", "h "+screenheight);
感谢所有花时间阅读本文的人!如果您之前有任何想法或处理过此问题,请告诉我。
【问题讨论】:
【参考方案1】:<item name="android:windowLayoutInDisplayCutoutMode">shortEdges</item>
<item name="android:windowTranslucentStatus">true</item>
<item name="android:windowTranslucentNavigation">true</item>
这解决了它。这是***的“缺口”,也就是手机摄像头的圆点镂空
【讨论】:
以上是关于Android:游戏侧面有黑条(仅在屏幕截图中)的主要内容,如果未能解决你的问题,请参考以下文章
Java 屏幕捕获 OpenGL 和 DirectX 全屏应用程序