我想知道是否有人使用xdpi和ydpi并获得设备的实际物理dpi?
由于
答案 0 :(得分: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;
}
答案 1 :(得分:0)
我没有。 xdpi和xdpi在我尝试过的所有手机中都是完全错误的。这毫无意义。