转载请注明出处: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. WebView中调用系统相册或拍照上传
  2. android TextView和EditText中显示图片
  3. Android图片堆叠效果实现
  4. Android屏幕中隐藏标题栏
  5. android 动态向Gallery中添加图片及倒影&&3D效果
  6. Android(安卓)控件之Gallery图片集
  7. Android(安卓)使用level-list改变对应的状态图片
  8. 工程 android上传图片至服务器
  9. android从资源文件中读取文件流显示

随机推荐

  1. Android中Shared Preferences、Files、Ne
  2. Android下的配置管理之道之gerrit权限管
  3. android ListView显示网络图片
  4. Android到处都在使用的回调分析
  5. Android(安卓)EditText设置Filter以后,xml
  6. Android反射机制实现与原理
  7. android怎么用APK调用JNI简单实例
  8. Android用Ant管理项目
  9. android DDMS 连接真机(己ROOT),用file exp
  10. Android之Searchable