转载请注明出处: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. GifView——Android显示GIF动画
  3. Android各分辨率定义的图片规格
  4. Android(安卓)- 像素密度和屏幕适配
  5. Android(安卓)universal-Image-Loader原理详解
  6. Android:使用ViewPager实现左右滑动切换图片 (简单版)
  7. 再看Android(安卓)屏幕切换引起的生命周期变化
  8. (4.1.10) ImageView图片自适应
  9. Android一些关于分辨率和布局的设置

随机推荐

  1. 在北京月薪从0.2K-13k,我是如何做到的
  2. mysql错误的数据对比方法
  3. 零知识证明应用到区块链中的技术挑战
  4. JS跳转引发浏览器NS_BINDING_ABORTED
  5. 信息与数据科学国际会议——与众位大咖共
  6. 4-8(继承的概念)
  7. Jenkins 之 安装部署与汉化
  8. ClearLinux包管理器swupd使用入门
  9. Exa – 替代ls命令的超好用工具
  10. 教你 2 种从 Linux 终端下载文件的方法