android - 三星设备间歇性地报告不正确的屏幕宽度

标签 android samsung-mobile android-windowmanager

在我们的应用程序中,我们需要在启动时确定屏幕宽度。我们尝试使用几种不同的方法来获得此宽度(请参见下面的列表),但三星设备,尤其是他们的 Galaxy 设备,有时会为我们提供不正确的值。

我们有一台分辨率为 1440 x 2560 像素的 Galaxy s6。大多数情况下,设备会报告宽度为 1440,但偶尔会给我们提供 1080 的宽度。

我们尝试通过以下方式获取宽度:

1)

getResources().getDisplayMetrics().widthPixels;

2)

WindowManager wm = (WindowManager) getSystemService(Context.WINDOW_SERVICE);
Display display = wm.getDefaultDisplay();
Point size = new Point();
display.getSize(size);

3)

WindowManager wm = (WindowManager) getSystemService(Context.WINDOW_SERVICE);
Display display = wm.getDefaultDisplay();
Point size = new Point();
display.getRealSize(size);

但在所有情况下,我们都会看到返回的宽度不正确。当我们的应用程序首次启动时,我们可靠地看到不正确的值。任何帮助将不胜感激。

最佳答案

你试过吗?

DisplayMetrics displayMetrics = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(displayMetrics);
int screenWidth = metrics.widthPixels;

更新

还有一点 hardcore . 您可能会发现更多 here .

关于android - 三星设备间歇性地报告不正确的屏幕宽度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40181246/

相关文章:

html - Android 浏览器/Samsung Galaxy SII 网页表单上的滚动错误。选择列表 hitboxes 不滚动

android - 最近的应用程序查看访问

android - Firebase 电话身份验证 : Does white listing real numbers cause an sms to be sent?

android - CollapsingToolbarLayout 中的多行 TextView 而不是标题

android - libgdx:SpriteBatch,Samsung Android 设备上的 fragment 着色器工作不正确

android - Samsung galaxy s5 中导出 apk 的位置

android - 替代Android中的 "FLAG_BLUR_BEHIND"?

android - 如何向显示在 AlertDialog 下方的 WindowManager 添加 View

java - 按下 ListView 行

android - 如何使管道符号或 Grep 在 Android 进程运行时命令中工作?