如何从高分辨率图像android获取所有dpi图像

如何从高分辨率图像android获取所有dpi图像,android,layout,dpi,Android,Layout,Dpi,我是一个新的android开发者 我们的设计师为我的应用程序提供了一些高分辨率图像,但我知道有很多设备(不同的屏幕)支持android平台 我的问题是。如何从高分辨率图像中获取所有的dpi(hdpi-mdpi-ldpi-xx)资源?如果我有你的问题,下面是解决方案:) 您可以使用@karvoynistas posted和 请注意,如果您想让图像自动调整大小,您实际上不需要做任何事情。。。(您只能定义一个文件夹,并让系统调整它们的大小。优点:您的应用程序会更轻。缺点:可能会更慢,并且由于堆大小有限

我是一个新的android开发者

我们的设计师为我的应用程序提供了一些高分辨率图像,但我知道有很多设备(不同的屏幕)支持android平台


我的问题是。如何从高分辨率图像中获取所有的
dpi(hdpi-mdpi-ldpi-xx)
资源?

如果我有你的问题,下面是解决方案:)

您可以使用@karvoynistas posted和


请注意,如果您想让图像自动调整大小,您实际上不需要做任何事情。。。(您只能定义一个文件夹,并让系统调整它们的大小。优点:您的应用程序会更轻。缺点:可能会更慢,并且由于堆大小有限,您可能会在存储大图像时遇到问题…)

只需将所有图像添加到xhdpi文件夹中,Android就会通过文件夹递归地找到它们,直到找到请求的照片,而不受设备屏幕密度的影响

从文件中:

在运行时,系统确保在屏幕上尽可能最好地显示 对于任何给定资源,当前屏幕显示以下过程:

  • 系统根据大小使用适当的替代资源 和当前屏幕的密度,系统使用任何大小和 应用程序中提供的密度特定资源。例如 如果设备具有高密度屏幕,且应用程序请求 可绘制资源,系统查找可绘制资源目录 这与设备配置最匹配。取决于对方 可用的替代资源,具有hdpi的资源目录 限定符(如drawable hdpi/)可能是最佳匹配,因此 系统使用此目录中的可绘制资源

  • 如果没有匹配 资源可用时,系统使用默认资源并缩放 它可以根据需要向上或向下调整,以匹配当前屏幕大小和密度 “默认”资源是那些没有使用 配置限定符。例如,drawable/中的资源是 默认的可提取资源。系统假定默认情况是这样的 资源是为基线屏幕大小和密度设计的,这 是一个正常的屏幕大小和中等密度。因此,该系统 为高密度屏幕向上和向下扩展默认密度资源 适用于低密度屏幕。但是,当系统运行时 正在查找特定于密度的资源,但在 密度特定的目录,它不会始终使用默认资源。 该系统可改为使用其他密度特定资源之一 以便在缩放时提供更好的结果。例如,当 系统正在寻找低密度资源,但该资源不可用 倾向于缩小资源的高密度版本, 因为该系统可以轻松地将高密度资源扩展到 低密度为0.5倍,与 按系数0.75缩放中等密度资源。更多 有关Android如何通过以下方式选择替代资源的信息: 将配置限定符与设备配置匹配,读取 Android如何找到最佳匹配资源

  • 如果您希望遵循良好的实践,那么无论采用哪种方式获取其他资源,都可以将hdpi资源扩展到较低的密度


    希望有帮助:)

    如果用户将xxhdpi drawables添加到drawable目录中,并且android被迫缩小,这会导致活动的开销/速度大幅降低吗?我认为Androids的伸缩能力足以进行一些资源调整。当然,这会产生影响,但我不知道是否会有重大影响。大多数情况下,你会发现图片和资源与应用程序的其他部分不太匹配,比如有点过大。这在我的第一个应用程序中的某个时候发生在我身上。