PNG 文件的尺寸与 Android 可绘制对象 dp 完全匹配

Dimensions of a PNG file to match exactly with Android drawable dp

提问人:user21193451 提问时间:7/12/2023 最后编辑:user21193451 更新时间:7/14/2023 访问量:114

问:

我想在 API 21 和 22 的启动画面中使用 Android Studio 可绘制徽标的 PNG 格式。正如本文中所指出的,这些 API 在 .所以我想将我的可绘制文件转换为PNG格式的文件(使用Adobe AI或CorelDraw等),但我不知道我应该保存我的文件以与Android drawable完全匹配。layer-listdp

我的可绘制徽标大小是 .我应该将文件导出到什么尺寸?这只是一个文件,还是我应该为 、、 和 导出 5 种不同的大小?我知道这不支持资源。100dp x 100dpidpmdpxdpxxdpxxxdplayer-list@mipmap

下面是一种编程方式,提供以下单位转换公式

pixels = dps * (density / 160)

但是,对于每个密度,我必须有一个PNG文件吗?

更新:我尝试使用上述公式或在线单位转换器,但结果如此之大,以至于我加快了速度。对于我的标志,我创建了一个带有尺寸和 dpi 300 的 PNG 格式徽标,那比 !100*100 dp*pd187.5*187.5 px*px100*100 dp*pd

Android Dimensions 图层列表 android-splashscreen

评论


答:

2赞 GreyBeardedGeek 7/12/2023 #1

从您引用的公式中可以看出,像素数取决于显示器的密度。

因此,如果您想将图像大小(以像素为单位)与 dps 完全匹配,那么您需要为每个密度使用单独的图像。

我并不是说这样做一定是一个好主意或坏主意,只是准确地回答了你的问题。

评论

0赞 user21193451 7/14/2023
如果我设置了我的图像单元或独立于我认为的图像单元怎么办。那么它会与原来的匹配吗?我试过这个,但结果又很大。mmindpi
1赞 C.F.G 7/14/2023 #2

以下是我对 AI 提出的要求。很酷:

要导出与 Android 72dp 的 mdpi 密度完全匹配的 PNG 位图,您需要考虑像素大小和每英寸点数 (dpi) 值。以下是计算所需值的方法:

确定基线密度:Android 的基线密度为 mdpi,其密度为 160 dpi。这意味着在 mdpi 密度下,1 dp 等于 1 个像素。

计算像素大小:要匹配 Android 72dp,您需要计算相应的像素大小。由于 1 dp 等于 mdpi 密度下的 1 个像素,因此 72dp 的像素大小为 72 像素。

计算 dpi 值:要确定 mdpi 密度的 dpi 值,可以使用以下公式:

dpi = (pixel size * 160) / dp size

在本例中,像素大小为 72 像素,dp 大小为 72 dp。将这些值代入公式中,我们得到:

dpi = (72 * 160) / 72 = 160 dpi

因此,要与 mdpi 密度下的 Android 72dp 完全匹配,您应该导出像素大小为 72 像素且 dpi 值为 160 dpi 的 PNG 位图。