Android:设备密度在旧设备中返回为零

时间:2015-01-03 09:50:29

标签: android

在某些设备中,设备密度似乎返回0。我使用下面的代码来计算设备密度:

    WindowManager wm = (WindowManager) context
            .getSystemService(Context.WINDOW_SERVICE);
    DisplayMetrics metrics = new DisplayMetrics();
    wm.getDefaultDisplay().getMetrics(metrics);
    density = metrics.density;

这导致PlayStore发生了一些崩溃。在这种情况下,用户的设备似乎大多使用Android 2.2.x版。我们应该如何处理这些旧设备中的设备密度? 请帮忙。

1 个答案:

答案 0 :(得分:1)

如果您的目标API级别早于4,则metrics.density属性是参考密度(160dpi)的浮点缩放系数。可以计算metrics.densityDpi现在提供的相同值

DisplayMetrics metrics = getResources().getDisplayMetrics();
int densityDpi = (int)(metrics.density * 160f);