代码之家  ›  专栏  ›  技术社区  ›  jstock

Galaxy Note 5:密度自动降低

  •  4
  • jstock  · 技术社区  · 9 年前

    我创建了一个依赖于一些屏幕指标的应用程序。除Galaxy Note 5外,它在所有设备上都非常适用。在Note 5上,它报告的屏幕大小为1080x1920,而屏幕实际为1440x2560。我还在logcat中看到以下消息:

    “ActivityThread将默认密度从560切换到420”

    我通过在以下代码中调用getWindowVisibleDisplayFrame来查找屏幕大小:

    Rect usable_rect = new Rect();
    Window window = activity.getWindow();
    window.getDecorView().getWindowVisibleDisplayFrame(usable_rect);
    

    另一个奇怪的观察结果是,如果我使用的包名不是我发布的应用程序的包名,则返回正确的度量。请帮忙!

    2 回复  |  直到 9 年前
        1
  •  2
  •   jstock    8 年前

    我们终于找到了Note 5减少应用程序/游戏可用空间的答案。事实证明,三星正在对可用屏幕尺寸进行一些优化,以提高电池性能。我们发现使用显示器真实屏幕大小的唯一方法是下载三星的Game Tuner应用程序并将模式设置为“最高质量”。似乎在没有安装Game Tuner应用程序的情况下,使用了默认的“平衡质量”,这导致了1080p的可用面积。

    https://play.google.com/store/apps/details?id=com.samsung.android.gametuner.thin&hl=en

        2
  •  0
  •   BORSHEVIK    8 年前

    试试这个

    Point size = new Point();
    WindowManager w = getWindowManager();
    
    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB_MR2) {
        w.getDefaultDisplay().getSize(size);
    
        mWindowWidth = size.x;
        mWindowHeight = size.y;
    } else {
        Display d = w.getDefaultDisplay();
        mWindowWidth = d.getWidth();
        mWindowHeight = d.getHeight();
    }