【发布时间】:2016-12-29 11:38:04
【问题描述】:
即三星 S6 Edge 的屏幕尺寸为 1440x2560 像素。
但是,我需要它们在 dp 中。如何以编程方式在dp 中获取 Android 设备的尺寸(宽度和高度)?
【问题讨论】:
标签: java android screen-size
即三星 S6 Edge 的屏幕尺寸为 1440x2560 像素。
但是,我需要它们在 dp 中。如何以编程方式在dp 中获取 Android 设备的尺寸(宽度和高度)?
【问题讨论】:
标签: java android screen-size
你可以获得DisplayMetrics
DisplayMetrics metrics = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(metrics);
并访问density值:
显示的逻辑密度。这是一个比例因子 密度无关像素单元,其中一个 DIP 是一个像素 大约 160 dpi 的屏幕(例如 240x320、1.5"x2" 的屏幕), 提供系统显示的基线。因此在 160dpi 屏幕此密度值将为 1;在 120 dpi 的屏幕上 .75;等等
这个值并不完全符合真实的屏幕尺寸(由 xdpi 和 ydpi,而是用于缩放整个 UI 的大小 根据显示 dpi 的总体变化分步进行。例如,一个 240x320 屏幕的密度为 1,即使其宽度为 1.8", 1.3" 等。但是,如果屏幕分辨率增加到 320x480 但屏幕尺寸保持为 1.5"x2",那么密度将为 增加(可能到 1.5)。
【讨论】: