转载请注明出处:http://blog.csdn.net/singwhatiwanna/article/details/19139013

前言

Android中支持许多资源,包括图片(Bitmap),对应于bitmap的文件夹是drawable,除了drawable,还有drawable-ldpi、drawable-mdpi、drawable-hdpi、drawable-xhdpi、drawable-xxhdpi等,同一张图片放到上面不同的文件夹中是有区别的,比如一张100 * 100像素大小的图片,分别放在上述各个文件夹中,然后将其设置为ImageView(假设宽高都是wrap_content)的图片,那么这个ImageView的大小是多少呢,或者说图片的大小是多少呢?本文主要和大家阐述这个问题。当然,还有一个问题,如果在上述各个文件夹中都放置一张相同的图片(内容相同,尺寸不同),那么系统会选择加载哪一张图片呢?这个问题,系统有内部的选择机制,简单来说:系统会选择最接近手机屏幕密度的图片,由于这个问题和本文主题关系不是很大,所以暂时不讨论此类问题。

概念

先介绍一些概念:

屏幕密度:单位英寸面积上的像素点数

ldpi: 屏幕密度为120的手机设备

mdpi: 屏幕密度为160的手机设备(此为baseline,其他均以此为基准,在此设备上,1dp = 1px)

hdpi: 屏幕密度为240的手机设备

xhdpi: 屏幕密度为320的手机设备

xxhdpi:屏幕密度为480的手机设备

图片大小以及dp和px关系一览表


说明:根据上表,我们应该很容易算出一张图片在不同手机上的宽和高是多少。

结论

从上表可以得出如下结论

1. 图片放在drawable中,等同于放在drawable-mdpi中,原因为:drawable目录不具有屏幕密度特性,所以采用基准值,即mdpi

2. 图片放在某个特定drawable中,比如drawable-hdpi,如果设备的屏幕密度高于当前drawable目录所代表的密度,则图片会被放大,否则会被缩小

  放大或缩小比例 = 设备屏幕密度 / drawable目录所代表的屏幕密度

3. 为了更全面的适配所有设备,我们应该提供一套针对主流屏幕密度的图片(目前为hdpi或xhdpi),其他密度通过系统自动缩放得到图片

更多相关文章

  1. Android多点触控揭秘
  2. 去掉android的屏幕上的title bar
  3. 在屏幕上方是actionBar tab的ViewPager页面里面嵌套子tab并显示
  4. Android中文API(146) —— Display
  5. Android(安卓)Button 上添加图片
  6. Android的四大天王
  7. Android修行之路——Android程序设计基础(一)
  8. Android分辨率自适应
  9. Android(安卓)的状态栏设置图片填充或者颜色填充

随机推荐

  1. ANDROID : java.lang.NoSuchMethodError:
  2. android include使用
  3. Android 在非UI线程直接更新UI信息
  4. Xposed: 勾住(Hook) Android应用程序对象
  5. Android Launcher manifest解析
  6. android4.0系统点击后颜色-浅蓝色
  7. EditText的hint位置和光标位置靠右
  8. Android之自定义ViewGroup
  9. android 数据库升级(保留原先数据)
  10. 【高通SDM660平台 Android(安卓)10.0】(2