5 回答
TA贡献1829条经验 获得超7个赞
来自Android开发者文档:
px
像素 - 对应于屏幕上的实际像素。在
寸 -基于屏幕的物理尺寸。
1英寸= 2.54厘米mm
毫米 - 基于屏幕的物理尺寸。PT
点 -基于屏幕的物理尺寸为1/72英寸。dp或dip
Density -inubpendent Pixels - 一个基于屏幕物理密度的抽象单位。这些单位相对于160 dpi的屏幕,因此一个dp是160 dpi屏幕上的一个像素。dp与像素的比率将随着屏幕密度而变化,但不一定成正比。注意:编译器接受“dip”和“dp”,但“dp”与“sp”更一致。sp
Scale -independent Pixels - 这类似于dp单元,但它也可以通过用户的字体大小首选项进行缩放。建议您在指定字体大小时使用此单位,以便根据屏幕密度和用户偏好调整它们。
+----------------+----------------+---------------+-------------------------------+
| Density Bucket | Screen Density | Physical Size | Pixel Size |
+----------------+----------------+---------------+-------------------------------+
| ldpi | 120 dpi | 0.5 x 0.5 in | 0.5 in * 120 dpi = 60x60 px |
+----------------+----------------+---------------+-------------------------------+
| mdpi | 160 dpi | 0.5 x 0.5 in | 0.5 in * 160 dpi = 80x80 px |
+----------------+----------------+---------------+-------------------------------+
| hdpi | 240 dpi | 0.5 x 0.5 in | 0.5 in * 240 dpi = 120x120 px |
+----------------+----------------+---------------+-------------------------------+
| xhdpi | 320 dpi | 0.5 x 0.5 in | 0.5 in * 320 dpi = 160x160 px |
+----------------+----------------+---------------+-------------------------------+
| xxhdpi | 480 dpi | 0.5 x 0.5 in | 0.5 in * 480 dpi = 240x240 px |
+----------------+----------------+---------------+-------------------------------+
| xxxhdpi | 640 dpi | 0.5 x 0.5 in | 0.5 in * 640 dpi = 320x320 px |
+----------------+----------------+---------------+-------------------------------+
+---------+-------------+---------------+-------------+--------------------+
| Unit | Description | Units Per | Density | Same Physical Size |
| | | Physical Inch | Independent | On Every Screen |
+---------+-------------+---------------+-------------+--------------------+
| px | Pixels | Varies | No | No |
+---------+-------------+---------------+-------------+--------------------+
| in | Inches | 1 | Yes | Yes |
+---------+-------------+---------------+-------------+--------------------+
| mm | Millimeters | 25.4 | Yes | Yes |
+---------+-------------+---------------+-------------+--------------------+
| pt | Points | 72 | Yes | Yes |
+---------+-------------+---------------+-------------+--------------------+
| dp | Density | ~160 | Yes | No |
| | Independent | | | |
| | Pixels | | | |
+---------+-------------+---------------+-------------+--------------------+
| sp | Scale | ~160 | Yes | No |
| | Independent | | | |
| | Pixels | | | |
+---------+-------------+---------------+-------------+--------------------+
更多信息也可以在Google Design Documentation中找到。
TA贡献1789条经验 获得超8个赞
我将详细说明dp如何转换为px:
如果在mdpi设备上运行,
150 x 150 px
图像将占用150 * 150 dp
屏幕空间。如果在hdpi设备上运行,
150 x 150 px
图像将占用100 * 100 dp
屏幕空间。如果在xhdpi设备上运行,
150x150 px
图像将占用75 * 75 dp
屏幕空间。
反过来说:你想要在你的应用程序中添加一个图像,你需要它来填充一个100 * 100 dp
控件。您需要为支持的屏幕尺寸创建不同尺寸的图像:
100 * 100 px
mdpi的图像150 * 150 px
hdpi的图像200 * 200 px
图像为xhdpi
添加回答
举报