100像素大小的图片分别放在上述各个文件夹中,然后将其设置为ImageView(假设宽高都是wrap_content)的图片那么这个ImageView的大小是多少呢,或者说图片的大小是多少呢本文主要和大家阐述這个问题。当然还有一个问题,如果在上述各个文件夹中都放置一张相同的图片(内容相同尺寸不同),那么系统会选择加载哪一张圖片呢这个问题,系统有内部的选择机制简单来说:系统会选择最接近手机百度提示更改屏幕密度密度的图片,由于这个问题和本文主题关系不是很大所以暂时不讨论此类问题。
百度提示更改屏幕密度密度:单位英寸面积上的像素点数
mdpi: 百度提示更改屏幕密度密度为160嘚手机设备(此为baseline其他均以此为基准,在此设备上1dp = 1px)
xhdpi: 百度提示更改屏幕密度密度为320的手机设备
xxhdpi:百度提示更改屏幕密度密度为480的手機设备
图片大小以及dp和px关系一览表
说明:根据上表,我们应该很容易算出一张图片在不同手机上的宽和高是多少
从上表可以得出如下结論
1. 图片放在drawable中,等同于放在drawable-mdpi中原因为:drawable目录不具有百度提示更改屏幕密度密度特性,所以采用基准值即mdpi
2. 图片放在某个特定drawable中,比如drawable-hdpi洳果设备的百度提示更改屏幕密度密度高于当前drawable目录所代表的密度,则图片会被放大否则会被缩小
放大或缩小比例 = 设备百度提示更妀屏幕密度密度 / drawable目录所代表的百度提示更改屏幕密度密度
3. 为了更全面的适配所有设备,我们应该提供一套针对主流百度提示更改屏幕密度密度的图片(目前为hdpi或xhdpi)其他密度通过系统自动缩放得到图片