到了Android4.0时代,新建Android工程,工程会自动生成drawable-hdpi, drawable-ldpi, drawable-mdpi, drawable-xhdpi四个目录。
不同点在于,图片资源文件被细分了。系统会根据dip的大小选择对应目录下的资源文件。
drawable-hdpi 对应DPI为240
drawable-ldpi 对应DPI为120
drawable-mdpi 对应DPI为160
drawable-xhdpi 对应DPI为320
获取屏幕DPI(屏幕密度)方法:
DisplayMetrics dm = new DisplayMetrics(); dm = getResources().getDisplayMetrics(); float density = dm.density;//屏幕密度(像素比例:0.75, 1.0, 1.5, 2.0) int densityDPI = dm.densityDpi;//屏幕密度(每寸像素:120, 160, 240, 320)
px与dip的换算:
density = 0.75, px : dip = 1 : 1.5
density = 1, px : dip = 1 : 1
density = 1.5, px : dip = 1.5 : 1
在开发过程中,请根据不同的DPI设计不同大小的图标,并将图标放在对应的目录下。千万不要放在drawable文件下,否则可能会引起图标大小不一致。
错误举例:
为1080P设计的的图标放在drawable下,在1080P下,图标会被放大。解决办法就是放到drawable-hdpi 目录下。
官方参考地址:
http://developer.android.com/guide/practices/screens_support.html