根据dpi的定义(Dot Per Inch)也即每英寸像素点数。得出如下计算式:
下面就举一些例子:
iPhone4、M9:960×640 @3.5“
对角=3.5
宽度=√(3.5^2/((960/640)^2+1))=1.941450687
长度=(960/640)×1.941450687 =2.91217603
长度dpi=960/2.91217603 =329.650402349
宽度dpi=640/1.941450687 =329.650402292
对角dpi=√(960^2+640^2)/3.5 =329.650402328
知道屏幕的分辨绿1280*800; 屏幕尺寸172mm* 107mm
屏幕xdpi = 1280/(172mm/25.4) = 1280/ 6.78inch = 189 xdpi
屏幕ydpi = 800/(107mm/25.4) = 800/4.24inch = 190 ydpi
屏幕的大小是由screen的分辨率决定的:
longsize < 470dp small screen
longsize >=960 && shortsize >=720 xlarge screen
longsize >=640 && shortsize >=480 large screen
else normal screen.
那么又如何确定xlarge/large, 或者说指定类型的资源被编译到资源包中呢?
在*.mk中的PRODUCT_AAPT_CONFIG := mdpi【ldpi, hdpi, xhdpi, nodpi, tvdpi】 xlarge【large, normal, small】
ldpi= 120dpi
mdpi=160dpi
hdpi=240dpi
xhdpi=320
tvdpi=213
nodpi=all&noScale