In android.util.DisplayMetrics, you can see that scaling factor is 0.00625:
/**
* Scaling factor to convert a density in DPI units to the density scale.
* @hide
*/
public static final float DENSITY_DEFAULT_SCALE = 1.0f / DENSITY_DEFAULT;
Where as DENSITY_DEFAULT is 160 –> scaling factor = 1.0f / 160 = 0.00625.
sizeScale = DENSITY_DEFAULT_SCALE * DENSITY_DPI
From this:
- ldpi = 0.00625 * 120 -> 0.75
- mdpi = 0.00625 * 160 -> 1.0
- hdpi = 0.00625 * 240 -> 1.5
- xhdpi = 0.00625 * 320 -> 2.0
- xxhdpi = 0.00625 * 480 -> 3.0
- xxxhdpi = 0.00625 * 640 -> 4.0
Not exactly a rocket science, but hope this will be useful for someone 🙂