我只想澄清一下,使用较低分辨率设备的android中的res文件夹,它们会自动从ldpi文件夹中获取相同的命名资源?这样我可以为较小的屏幕制作不同的资产吗?
我是否需要在所有4个文件夹(ldpi-xhdpi)中拥有资源才能在所有大小的设备上运行?或者,如果所有设备的资产都相同,我可以在一个文件夹中拥有资产吗?
如果我的资产只对低分辨率设备有所不同,我是否需要镜像每个其他文件夹的内容,以便它们都具有相同的资产?
答案 0 :(得分:1)
我建议彻底阅读this article以了解其确切的工作方式,但基本上,它会找到最接近匹配的大小资源,所以不,你不需要镜像所有文件夹必然。
来自the qualifiers section particularly,这句话很好地解释了这一点。
请注意,当Android系统选择要使用的资源时 运行时,它使用某些逻辑来确定“最佳匹配” 资源。也就是说,您使用的限定符不必完全匹配 所有情况下的当前屏幕配置,以便系统 使用它们。具体而言,在根据大小选择资源时 限定符,系统将使用为屏幕设计的资源 如果没有更好的资源,则小于当前屏幕 匹配(例如,大尺寸屏幕将使用正常大小的屏幕 必要的资源)。但是,如果唯一可用的资源是 大于当前屏幕,系统将不会使用它们和您的 如果没有其他资源与设备匹配,应用程序将崩溃 配置(例如,如果所有布局资源都标记为 xlarge限定符,但设备是正常大小的屏幕)。对于 有关系统如何选择资源的更多信息,请阅读如何 Android找到最匹配的资源。
答案 1 :(得分:0)
让我们将你的问题分成三个单独的问题。
我只想用android中的res文件夹来澄清 解析设备,它们自动从中获取相同的命名资产 ldpi文件夹?这样我可以为较小的资产制作不同的资产 屏幕?
很简单,是的。这就是系统的用途。只要您使用同名资产,Android就会自动选择最适合您设备的资源,具体取决于屏幕的dpi。
我是否需要在所有4个文件夹(ldpi-xhdpi)中拥有资源 在各种尺寸的设备上工作?或者我可以在一个文件夹中拥有资产 所有设备的资产都相同?
您不需要所有文件夹中的资源都可以在所有设备上工作。但是,如果您希望正常运行,则您需要所有文件夹中的资源,所有文件夹都有自己的尺寸,具体取决于文件夹。如果您只使用一个具有一个资产大小的文件夹,它仍然有效。您的资产将被Android本身缩放,这可能会导致某些资产在某些更高/更低的dpi设备上看起来非常难看。更不用说缩放可能导致整个布局陷入困境。
如果我的资产仅与低分辨率设备不同,那我该怎么办? 需要镜像每个其他文件夹的内容,以便它们全部 拥有相同的资产?
“对于低分辨率设备只有不同”,您的意思是整个资产是不同的吗?例如蓝色图像而不是红色图像?如果是这样,您仍然需要使用与其他文件夹中的资源相同的名称。实际内容可能不同,操作系统仅在获取资产时检查名称。
有关如何支持多种屏幕尺寸的详细信息,请尝试使用本指南:
http://developer.android.com/guide/practices/screens_support.html