1

我创建了一个函数来根据分辨率和像素密度计算对角线屏幕尺寸。即-

def find_display_size(d):

  width=float(720);
  height=float(1280);
  dens=float(294);
  wi=float(width)/(dens);
  hi=float(height)/(dens);
  x = math.pow(wi,2);
  y = math.pow(hi,2);
  screenInches = math.sqrt(x+y);
  diagScreenSizeRoundedoff = round(screenInches)
  logger.info("screenInches "+str(screenInches),also_console=True)
  logger.info("diagScreenSizeRoundedoff"+str(diagScreenSizeRoundedoff),also_console=True)

我想使用 adb shell 获取信息(分辨率和像素密度)。当我尝试这个命令时-

$adb shell wm density

Result-
Physical density: 320

我得到的结果是设备的物理密度(= 320),但是特定设备的像素密度是(~294)。很想知道这两者之间到底有什么区别,以及如何使用 adb 命令找到像素密度,在这种情况下约为 294。

PS-我正在使用的设备是-MOTO XT1068

4

1 回答 1

1

Android 正在使您的设备适合具有固定密度集的 mdpi、hdpi、xhdpi 等组之一。例如,具有 290-340 dpi 的设备将使用 320 值,xxhdpi 将为 480,mdpi 仅 160。此密度用于从资源中获取数据(维度,用于计算 xml 可绘制对象,仅在 xxhdpi 文件夹中调整可绘制对象的大小,但设备是mdpi 等)更多的密度和关于这里的主题

屏幕密度

屏幕物理区域内的像素数量;通常称为 dpi(每英寸点数)。例如,与“正常”或“高”密度屏幕相比,“低”密度屏幕在给定物理区域内的像素较少。

为简单起见,Android 将所有实际屏幕密度分为六种广义密度:低、中、高、超高、超超高和超超高。

于 2016-05-17T05:26:22.100 回答