drawable( hdpi, ldpi, mdpi, xhdpi)区别

来源:互联网 发布:php 字节数组 编辑:程序博客网 时间:2024/04/29 17:29
貌似是在Android2.1之前的时代,新建Android工程,工程会自动生成一个drawable的目录。

到了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(屏幕密度)方法:

[java] view plaincopy
  1. DisplayMetrics dm = new DisplayMetrics();    
  2. dm = getResources().getDisplayMetrics();  
  3. float density = dm.density;//屏幕密度(像素比例:0.75, 1.0, 1.5, 2.0)  
  4. 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

0 0