通过如下方式计算手机的屏幕的 DPI
代码中获取屏幕dpi的方式如下
context.getResources().getDisplayMetrics().densityDpi
//是读取/system/build.prop(记录一些系统设置)属性文件中ro.sf.lcd_density的值
(问题1)
但是发现,通过公式计算出来的dpi与代码获取到的dpi是不一样的,google建议分为120 dpi、160 dpi、240 dpi、320 dpi,为什么要这样做?
例如我的mate8手机,分辨率1080*1920,6英寸屏幕,通过公式计算出dpi为367,但是通过代码获取到的是480.
(问题2)
是通过公式计算出来dpi,然后看在谷歌建议哪个范围内,就将ro.sf.lcd_density的值设置为多少么?例如,计算得到dpi=102,那么就设置ro.sf.lcd_density=120.