8/27/2013, 7:44:50 PM
为了应付众多的屏幕,Android将屏幕分为四个等级(也就是四个屏幕密度screenDensity)
而相应的在Android项目的工程中会有对应的图片资源文件夹(drawable-ldpi、drawable-mdpi、drawable-hdpi、drawable-xdpi), Android程序在呈现图片时会**优先选择符合屏幕等级文件夹下的资源。**但是如果资源只在一个文件夹下,Android在不同屏幕下会对该图片做怎样的呈现?
工作中遇到的一个问题是,360p宽的一张资源图片,在720px宽、屏幕密度为xhdpi的屏幕上却呈现为480px的宽度(经过截图量取),经过排查方向该图片只是放在了drawable-hdpi的文件夹下,Android只是死板地按照hdpi的等级来呈现图片。
至于尺寸变化的合理的解释应该是:
因此刚才例子中480=360 * 160/240 * (320 /160)
上述等式涉及Android中px和dp的转换,请读者自行脑补ಠ౪ಠ
因此Android开发中若有尺寸敏感的图片资源,一定要记得铺盖到全部文件夹,哪怕同样的文件,在不同文件夹下最后的渲染呈现也会不同。