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:游戏侧面有黑条(仅在屏幕截图中)的主要内容,如果未能解决你的问题,请参考以下文章

iOS AirPlay 第二屏教程

android中怎么用代码实现截屏

Java 屏幕捕获 OpenGL 和 DirectX 全屏应用程序

android 怎么获取当前屏幕的截图

iOS 6 iPhone 5 App 在Phonegap Build 中没有全屏显示?

Android录屏应用开发研究