先看这个链接:https://www.jianshu.com/p/aff87755b8ca
此文说dpi趋近于ppi,我不认同
下图是华为荣耀的ppi参数:
image.png
下图是我真机跑出来的dpi参数:
image.png
很明显二者差距很大
更正一下:
ppi英文全称是piexl per inch ,计算公式如下图:
PPI计算规则.jpg
dpi英文全称是dots-per-inch,可以认为是认为规定的,看谷歌的源码:
/**
* The screen density expressed as dots-per-inch. May be either
* {@link #DENSITY_LOW}, {@link #DENSITY_MEDIUM}, or {@link #DENSITY_HIGH}.
*/
public int densityDpi;
density计算规则是dpi/160的得出的值,160是个标准dpi,认为规定,density是用来dp转px,1dp = density1px.
测试华为v10 21801080 4.99英寸 计算出ppi为484 获取到dpi为480 二者接近
测试模拟器 pixel 2 19201080 5.0英寸 计算出ppi为441 获取到dpi为420
测试模拟器 Nexus s 800480 4.0英寸 计算出ppi为223 获取到dpi为240
参考链接:https://developer.android.com/training/multiscreen/screensizes.html
https://developer.android.com/guide/practices/screens_support.html
网友评论