求任意DPI间转换的计算公式(如mdpi转hdpi等)
Android 不同DPI之间的转换公式
Android的DPI密度转换以mdpi(160dpi)作为基准密度,各主流密度对应的缩放因子如下:
- mdpi(基准):1.0
- ldpi:0.75
- hdpi:1.5
- xhdpi:2.0
- xxhdpi:3.0
- xxxhdpi:4.0
通用转换公式
若要从任意源DPI密度转换到目标DPI密度,转换后的尺寸(图标、布局尺寸等)计算公式为:
目标尺寸 = 源尺寸 × (目标密度缩放因子 / 源密度缩放因子)
示例
mdpi转hdpi:
假设mdpi下图标尺寸为48px,转换到hdpi的计算为:48 × (1.5 / 1.0) = 72px,即hdpi下对应72px的图标。xhdpi转xxhdpi:
若xhdpi下的按钮宽度为100px,转换到xxhdpi的计算为:100 × (3.0 / 2.0) = 150px,即xxhdpi下按钮宽度为150px。
这套规则是Android官方定义的密度适配标准,所有专业的DPI转换工具都是基于这套逻辑实现的。
内容的提问来源于stack exchange,提问作者Joshua
相关产品推荐
相关产品推荐

