博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
【转】彻底理解安卓里的ldpi、mdpi、hdpi、xhdpi、xxhdpi文件夹含义
阅读量:5858 次
发布时间:2019-06-19

本文共 994 字,大约阅读时间需要 3 分钟。

这个问题我相信困惑了好多人包括很多老鸟,而且有的人以为自己理解其实是错误的,包括之前的我在内,在做 的时候,一般让美工做720*1280的切图,就直接放到xhdpi下,如果是做了1080*1920,就直接放到xxhdpi下。

   其实这四个文件夹和具体的屏幕分辨率是没直接关系的,上面说的做法也有一定道理,因为大部分的720*1280的手机都是高密度手机,1080*1920都是超高密度手机,但是这四个文件夹之和屏幕密度有关,和具体分辨率无关。

彻底理解安卓里的ldpi、mdpi、hdpi、xhdpi、xxhdpi文件夹含义

   下面给出一个最最关键的等式:
low:medium:high:extra-high:extra-extra-high=3:4:6:8:12
   OK,就是说五个文件夹的比例为3:4:6:8:12。具体是怎么回事呢?下面分析一下:
比如我用一个480*800的4寸手机,这个手机的屏幕密度按照Google的说法,就属于密度为high level的水平(通过分辨率和屏幕尺寸计算密度,然后google自己有一套标准说你位于哪个范围属于哪个level的密度水平),然后这个手机的应用在用图片的时候,就会去hdpi下去找,并且以这个文件夹的图片为标准,也就是说比如我的应用去取一张aa.png的图片,这个图片的原图尺寸为30*30,恰好hdpi下有一张,那这张图片显示到屏幕上以后,它的显示尺寸长宽都为30px。那问题来了,但如果我的hdpi下没有这张图片,而只在xhdpi下有这张图片,图片的原图尺寸是30*30,那请问显示到屏幕上的图片的尺寸会是多大呢,还是长宽都为30px吗?
   答案是否定的,而且现在就用到了上面那个比例,high:extra-high=6:8。先明确这样一个问题,如果我的屏幕是hdpi的,结果我的图片是放到了xhdpi下,那系统会把这张图片进行缩小显示,也就是说我的xhdpi下放了一张30*30的图片,那显示当hdpi屏幕上肯定要比30*30小,这样才能保证说大小屏幕界面显示效果是一致的,因为密度小的手机显示一张图片要比密度大的手机显示同一张图片的面积要大,要想显示面积一样就必须要把图片搞小点。接上面的问题,假设显示在我的hdpi屏幕上的图片的宽度为x,那满足以下等式:
6:8=x:30 。  

可得到x=22.3,向后取整数得23 。

 

from:http://www.bafenbaosoft.com/post/40.html

转载地址:http://cgojx.baihongyu.com/

你可能感兴趣的文章
Microsoft Quantum Katas帮助开发人员探索使用Q#实现量子计算
查看>>
Akka actor tell, ask 函数的实现
查看>>
windows10 chrome 调试 ios safari 方法
查看>>
Hello , Ruby!
查看>>
Netty 4.1.35.Final 发布,经典开源 Java 网络服务框架
查看>>
详解Microsoft.AspNetCore.CookiePolicy
查看>>
go与c互相调用
查看>>
如何优雅地用Redis实现分布式锁
查看>>
从零开始Docker化你的Node.js应用
查看>>
SCDPM2012 R2实战一:基于SQL 2008 R2集群的SCDPM2012 R2的安装
查看>>
SQL SERVER中字段类型与C#数据类型的对应关系
查看>>
保存对象、关系映射
查看>>
Java堆和栈的区别
查看>>
Linux lsof命令详解
查看>>
SVG path
查看>>
js判断checkbox是否选中
查看>>
【转】TabError:inconsistent use of tabs and spaces
查看>>
链路层
查看>>
多系统盘挂载
查看>>
MySQL函数怎么加锁_MYSQL 函数调用导致自动生成共享锁问题
查看>>