您的位置:首页 > 移动开发 > Android开发

Android中屏幕密度和图片大小的关系分析

2017-08-17 15:44 267 查看
Android中支持许多类型的资源,其中图片资源对应的文件夹是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的手机设备。



从上表可以得出如下结论:

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

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

3. 为了更全面的适配所有设备,我们应该提供一套针对主流屏幕密度的图片(目前为hdpi或xhdpi),其他密度通过系统自动缩放得到图片。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: