Android - 级联可绘制文件夹和默认drawables

时间:2011-10-14 15:15:55

标签: android resources drawable

我有以下可绘制文件夹

/drawable/
/drawable-hdpi/
/drawable-ldpi/
/drawable-mdpi/
/drawable-xhdpi/

如果我有图像资源,是否需要创建5(或4?)种不同版本的文件?假设我只制作了两个版本并将它们放在各自的文件夹中:

/drawable/
/drawable-hdpi/image.png
/drawable-ldpi/
/drawable-mdpi/image.png
/drawable-xhdpi/

当LDPI或XHDPI设备上的某人访问需要显示image.png的活动时会发生什么?它只是没有显示出来吗?应用程序崩溃了吗?或Android是否遵循资源级联系统,显示最接近当前屏幕密度的版本?

此外,在这种情况下,image.png文件夹中没有/drawable/。这不好吗?每个资源是否(至少)都有/drawable/文件夹中的版本?

另外,如果您指定了所有4个屏幕密度可绘制文件夹(xhdpi,hdpi,mdpi,ldpi),那么普通/drawable/文件夹的重点是什么?什么时候会被使用?

1 个答案:

答案 0 :(得分:4)

  

如果我有图像资源,是否需要创建5(或4?)个不同的图像资源   该文件的解析版本?

不,你没必要

  

当LDPI或XHDPI设备上的某人访问活动时会发生什么   需要显示image.png?它只是没有显示出来吗?是吗?   应用崩溃?或者Android是否遵循资源级联系统,显示   最接近当前屏幕密度的版本?

Android为其资源使用了一个很好的级联系统。 This页面解释了一下。 如果LDPI资源不可用,Afaik LDPI设备将使用MDPI资源,XHDPI使用HDPI资源。 (我可能有点偏离,我不记得确切的规则)你的应用程序不会崩溃。 如果您的分辨率资源比屏幕更高,则您的应用会崩溃。

  

此外,在这种情况下,/ drawable /文件夹中没有image.png。   这不好吗?每个资源是否应该(至少)有一个版本   在/ drawable /文件夹中?

不,没必要。

  

另外,如果您指定了所有4个屏幕密度可绘制文件夹   (xhdpi,hdpi,mdpi,ldpi),那么正常的意义何在   / drawable /文件夹?什么时候会被使用?

drawable文件夹适用于不需要缩放的图像,以及形状可绘制资源XML文件等。