https://segmentfault.com/q/1010000002794179
通过android提供的接口,我们可以获取到如下的信息:
int densityDpi = mContext.getResources().getDisplayMetrics().densityDpi;
float scaledDensity = mContext.getResources().getDisplayMetrics().scaledDensity;
float density = mContext.getResources().getDisplayMetrics().density;
float xdpi = mContext.getResources().getDisplayMetrics().xdpi;
float ydpi = mContext.getResources().getDisplayMetrics().ydpi;
int width = mContext.getResources().getDisplayMetrics().widthPixels;
int height = mContext.getResources().getDisplayMetrics().heightPixels;
这样可以计算屏幕的物理尺寸
宽 = width/xdpi
高 = height/ydpi
但是现在比较疑惑的是,为什么通过这个公式算出来的值不正确?是手机厂商写入的参数是错误的吗?
比如我现在手里有两台手机:
联想A388t 5寸屏:
width=480,height=854,densityDpi=240,density=1.5,xdpi=239.05882,ydpi=241.01778
小米1 4寸屏: width=480,height=854,densityDpi=240,density=1.5,xdpi=254.0,ydpi=271.145
这两台手机的分辨率一样,dpi一样,density一样,可为什么一个是4寸屏,一个是5寸屏
google,baidu后无解,还请大拿解惑,谢谢