我创建了一个依赖于某些屏幕指标来运行的应用。它适用于除Galaxy Note 5以外的所有设备。在笔记5上,它报告屏幕尺寸为1080x1920,而屏幕实际为1440x2560。我还在logcat中看到以下消息:
“ActivityThread:将默认密度从560切换到420”
我通过以下代码调用getWindowVisibleDisplayFrame来查找屏幕大小:
Rect usable_rect = new Rect();
Window window = activity.getWindow();
window.getDecorView().getWindowVisibleDisplayFrame(usable_rect);
另一个奇怪的观察,如果我使用的包名称除了我发布的应用程序包名称之外,还会返回正确的指标。请帮忙!
答案 0 :(得分:1)
我们终于找到了Note 5的答案,减少了我们的app / game的可用空间。事实证明,三星正在对可用屏幕尺寸进行一些优化以获得电池性能。我们发现使用显示器的真实屏幕尺寸的唯一方法是下载三星的Game Tuner应用程序并将模式设置为"最高质量"。似乎没有Game Tuner应用程序安装默认的"平衡质量"使用,导致1080p可用区域。
https://play.google.com/store/apps/details?id=com.samsung.android.gametuner.thin&hl=en
答案 1 :(得分:0)
试试这个
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();
}