分辨率 和 资源关系

default Res load range
ldpi       120         dpi<-131             0.8 
mdpi     160        131
tvdpi     213        181
hdpi      240                                      1.5 
xhdpi    320       263
xxhdpi  480       dpi>363                  3 

根据Screen size和Resolution计算出的density,可能不是120,160,213,240,320,480。需要找与其接近的来填写ro.sf.lcd_density。 

sw的意思是smallestWidth,用来区分不同的平台load 不同的resource 
至于load sw相关resource,是这样计算的: 

对于800×1280的屏来说, 
将dpi改为160,反而走的是720dp的资源 
-->800/(160/160)=800,所以load drawable-sw720     r
esource 

dpi改为188走的是600dp的资源 
-->800/(188/160)=680 所以load drawable-sw600     resource 

修改system.prop下的ro.sf.lcd_density为215,结果图片走的是原始的低分辨率的资源 
-->800/(215/160)=595 所以它无法load draw-sw600 resource 



屏幕密度计算方式
1.按照公式算出来dpi应该是215,修改system.prop下的ro.sf.lcd_density为215,

---》如果Screen size 为N, Resolution 為 A *B 。 Density = (A*A+B*B)^(1/2) / N 。 

根据Screen size和Resolution计算出的density,可能不是120,160,213,240,320,480。需要找与其接近的来填写ro.sf.lcd_density。 

这个时候应该将ro.sf.lcd_density设置为213 



你可能感兴趣的:(Android,系统开发,dp,图片)