Android多分辨率适配方案

一、Android常见的度量单位

二、Android drawable的加载原理

图片如何缩放

若手机屏幕密度:320dp/xhdpi/2.0x
放在drawable-xhdpi目录下,图片显示原始大小,不会失真;
放在drawable-xxhdpi目录下,图片缩小,可能失真;
放在drawable-hdpi目录下,图片放大,失真;
如果放在drawable-nodpi目录下,无论手机什么分辨率,都会保持原图的大小,不缩放。
图片缩放大小=手机屏幕密度/图片所在的目录的dpi值

图片是否会失真

准备两部测试手机:
华为P7,分辨率为1920*1080,dpi为480
HTC T392,分辨率为800*480,dpi为240
现在有一套专门为dpi等于480的手机准备的切图放在drawable-xxhdi中。当P7加载该套切图时图片显示正常,当T392加载该套图片时图片被缩小,且缩小比为240/480=0.5。但是请注意两部手机分辨率的比值。其中,宽的比:480/1080=0.44;高的比800/1920=0.42;也就是说两个屏幕的分辨率的比大概是0.4,但是图片的缩放比是0.5,所以这两者的不一致导致了图片缩放后的失真。如果要使图片在HTC T392上不失真,那么需要按照0.4缩放图片,而非0.5.

为了摆脱这个桎梏,避免图片的缩放导致图片失真:

1、将切图放入drawable-nodpi中。
该文件夹中的图片不会被缩放,在不同分辨率的手机上都只显示原图的大小。如此以来,摒弃了系统对于图片的缩放,为我们以后自己处理图片的缩放做好了铺垫。
2、计算出缩放比。
依据不同的分辨率计算出缩放比。
总之,我们不再采用系统提供的对于图片的适配和缩放,而是自己确定一个准确的缩放比例将高分辨率的UI按照该比例缩放从而实现多分辨率的适配

参考文章:
Android多分辨率适配框架

你可能感兴趣的:(android)