getting the screen density programmatically in android?
android, dpi, screen-density
Solution
You can get info on the display from the DisplayMetrics struct:
DisplayMetrics metrics = getResources().getDisplayMetrics();
Though Android doesn't use a direct pixel mapping, it uses a handful of quantized Density Independent Pixel values then scales to the actual screen size. So the `metrics.densityDpi` property will be one of the `DENSITY_xxx` constants (`120`, `160`, `213`, `240`, `320`, `480` or `640` dpi).
If you need the actual lcd pixel density (perhaps for an OpenGL app) you can get it from the `metrics.xdpi` and `metrics.ydpi` properties for horizontal and vertical density respectively.
If you are targeting API Levels earlier than 4. The `metrics.density` property is a floating point scaling factor from the reference density (160dpi). The same value now provided by `metrics.densityDpi` can be calculated
int densityDpi = (int)(metrics.density * 160f);
Problem
How to get the screen density programmatically in android? I mean: How to find the screen dpi of the current device?