尺寸单位
- dip: Device Independent Pixels ,再简写为dp,是指设备独立像素。不要与dpi混淆。dp是Android上为了适配不同屏幕设备而定义的一种抽象单位,1dp在不同分辨率屏幕上占用的像素数量不一样,在屏幕分辨率高的设备上占用更多像素,在分辨率小的设备上占用更少像素,从而让整体上看显示的比例相对屏幕大小是一样的。
- px: Pixel,屏幕物理像素
-
dpi:Dots Per Inch,这里的Dots是指像素,每英寸像素点数,可称作像素密度。常见取值 160,240,320等。
-
density : 密度比,是指dpi与标准dpi的比值,即dpi/160,也可以理解为1dp对应多少个像素。常见取值1.0、1.5、2.0等。
-
sp: Scaled Pixels,缩放像素。 用于字体显示。
-
分辨率: 横纵2个方向的像素点的数量。
-
屏幕尺寸: 屏幕对角线的长度。
- TextView.setTextSize (float size) 单位是sp
- densityDpi,即dpi,以1080×1920分辨率的5英寸手机为例,对角线上大约有2203像素,则dpi=2203/5=440。
- px和densityDpi是真实的物理屏幕尺寸和密度。
- dp和density是Android中为了让不同屏幕尺寸上显示效果接近一致而抽象出来的,表示抽象的屏幕尺寸和密度。
调节显示大小
在设置/显示/显示大小中调节显示尺寸。调节的越大,则density值越大,即1dp对应的像素数量越多,但由于分辨率不变,屏幕宽高的最大dp数变小,所以如果使用绝对位置布局则可能会显示到屏幕之外。
adb之wm命令
到sdk\platform-tools找到adb,adb devices查找连接的设备,adb shell进入,
wm density # 查看屏幕的 像素密度,
wm density 160 # 把屏幕像素密度改为 160 dpi
mipmap和drawable文件夹
核心结论
- 对于应用图标(App Icon):永远放在
mipmap目录中。 - 对于其他所有图标和图片资源:包括位图、矢量图、XML图,都放在
drawable目录中。
1. mipmap 目录
- 设计初衷:专门为应用启动器图标(Launcher Icon) 设计。
- 关键特性:系统永远不会对
mipmap目录下的资源进行缩放。无论你的应用安装在哪一种屏幕密度的设备上,Launcher(桌面)都会获取到为该设备分辨率精确匹配的mipmap资源,从而确保应用图标始终清晰、无锯齿。 - 适用场景:
- 有且仅有:应用图标,即
ic_launcher或ic_launcher_round等。这些图标会显示在手机桌面、应用列表、设置界面以及分享菜单中。
- 有且仅有:应用图标,即
- 为什么不放别的:如果把其他UI图标也放在
mipmap中,系统不会缩放它们,在布局中引用时可能需要自己处理尺寸,反而增加麻烦。而且这违背了该目录的设计初衷。
2. drawable 目录
- 设计初衷:存放应用内所有其他的图片资源。
- 关键特性:系统可能会根据设备的屏幕密度(dpi)对
drawable目录下的图片进行缩放,以适配不同屏幕。系统会选择最接近的密度版本,然后缩放至合适大小。 - 适用场景:除了应用启动图标之外的所有图片。包括但不限于:
- UI图标(如返回箭头、菜单图标、心形收藏图标等)
- 按钮背景(Button Backgrounds)
- 界面背景(Backgrounds)
- 位图(Bitmaps)
- XML绘制的形状(Shapes)、选择器(Selectors)等
本文介绍了Android屏幕尺寸相关知识。包括尺寸单位如dp、px、dpi、density、sp等的含义,指出dp和density是为适配不同屏幕抽象出来的。还说明了可在设置中调节显示大小,调节会影响density值。此外,介绍了adb之wm命令,可用于查看和修改屏幕像素密度。

410

被折叠的 条评论
为什么被折叠?



