有没有人使用过xdpi,ydpi并得到了正确的结果

1 android

我想知道是否有人使用xdpi和ydpi并获得设备的实际物理dpi?

谢谢

Jus*_*tin 5

它在我的Nexus One上是正确的,但在我的Galaxy S2(T-mobile)上没有.所以我写了一些代码来回避不太准确的测量.基本上,如果xdpi和ydpi不在通用密度的5%范围内,请使用泛型.

谁说碎片不是问题?Google的认证产品测试套件不得使用API​​的这一部分.

  DisplayMetrics dm = new DisplayMetrics();
  ((WindowManager) getContext().getSystemService(Context.WINDOW_SERVICE)).getDefaultDisplay().getMetrics(dm);
  float density = dm.density;
  density = density * 160;
  float xdpi = dm.xdpi;
  float ydpi = dm.ydpi;
  float errX = Math.abs((xdpi / density) - 1f);
  float errY = Math.abs((ydpi / density) - 1f);
  if (errX > .05 && errY > .05)
  {
     xdpi = density;
     ydpi = density;
  }
Run Code Online (Sandbox Code Playgroud)