它在我的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)
| 归档时间: |
|
| 查看次数: |
1114 次 |
| 最近记录: |