提问人:user21193451 提问时间:7/12/2023 最后编辑:user21193451 更新时间:7/14/2023 访问量:114
PNG 文件的尺寸与 Android 可绘制对象 dp 完全匹配
Dimensions of a PNG file to match exactly with Android drawable dp
问:
我想在 API 21 和 22 的启动画面中使用 Android Studio 可绘制徽标的 PNG 格式。正如本文中所指出的,这些 API 在 .所以我想将我的可绘制文件转换为PNG格式的文件(使用Adobe AI或CorelDraw等),但我不知道我应该保存我的文件以与Android drawable完全匹配。layer-list
dp
我的可绘制徽标大小是 .我应该将文件导出到什么尺寸?这只是一个文件,还是我应该为 、、 和 导出 5 种不同的大小?我知道这不支持资源。100dp x 100dp
idp
mdp
xdp
xxdp
xxxdp
layer-list
@mipmap
下面是一种编程方式,提供以下单位转换公式
pixels = dps * (density / 160)
但是,对于每个密度,我必须有一个PNG文件吗?
更新:我尝试使用上述公式或在线单位转换器,但结果如此之大,以至于我加快了速度。对于我的标志,我创建了一个带有尺寸和 dpi 300 的 PNG 格式徽标,那比 !100*100 dp*pd
187.5*187.5 px*px
100*100 dp*pd
答:
从您引用的公式中可以看出,像素数取决于显示器的密度。
因此,如果您想将图像大小(以像素为单位)与 dps 完全匹配,那么您需要为每个密度使用单独的图像。
我并不是说这样做一定是一个好主意或坏主意,只是准确地回答了你的问题。
评论
mm
in
dpi
以下是我对 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 位图。
评论