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


转自: http://blog.csdn.net/mtt1987/article/details/8787365

貌似是在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 plain copy print ?
  1. DisplayMetricsdm=newDisplayMetrics();
  2. dm=getResources().getDisplayMetrics();
  3. floatdensity=dm.density;//屏幕密度(像素比例:0.75,1.0,1.5,2.0)
  4. intdensityDPI=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

更多相关文章

  1. Android根据日期自动修改Icon
  2. android studio导工程出现Error:Execution failed for task ':ap
  3. Android(安卓)新建工程 卡在Gradle:Resolve dependencies':app:_
  4. [转]Android(安卓)获取当前Activity的屏幕截图
  5. 菜单栏上没有android机器人的图标(AVD)的解决方法
  6. Android中判断状态栏是否存在
  7. 在android工程中导入layoutlib.jar
  8. android 屏幕切换
  9. Android拨号键盘增加魔力爱心数字

随机推荐

  1. android 关于appcompat v7出错问题与解决
  2. Android中的AIDL
  3. Android自动解除系统锁屏
  4. android进程间服务通信示例
  5. Android(安卓)Activity之间跳转与传值
  6. Android 实现记住用户名和密码的功能
  7. 在Linux下安装Android SDK
  8. adb logcat命令查看并过滤android输出log
  9. android 上下文菜单Context Menu--折腾一
  10. Unity调用高德地图API,获取定位信息(Androi