Android - 根据屏幕密度来自 URL 的网络服务图像?

Android - Images from an URL through web services according to Screen Density?

我正在开发 Android 应用程序。它假装适用于许多国家,所以我需要更改一些图标,并且 "drawables" 根据已登录到该应用程序的用户所在的国家/地区,例如用户所在国家/地区的移动运营商,可能是国家/地区的国旗等

我正计划通过 Web 服务(使用 Volley)上的 URL 获得这些信息。

但是,谈到 Android 的多屏幕密度,我不知道在这种情况下是否 "valid" 从服务中获取一个单一的图像尺寸并将其放在应用程序中, 或者根据设备的屏幕密度向服务器请求相应的图像(如果这是一个好的做法)。

您是如何处理这些案件的?如果有任何评论,我将不胜感激!!

对于您希望保持不变的尺码,您可以使用 in/mm/pt。 在以下位置查看更多类似内容: What is the difference between "px", "dp", "dip" and "sp" on Android?

我相信您描述的案例是一个有效且好的方法。

您可以简单地将图像解析为服务器上适用的屏幕密度,然后根据文件命名或排序约定将它们拉入您的应用程序。即 density = getDensity -> 从 images/density

中提取图像

或者,如果这些图像足够小,您可以在拉取后执行应用内调整大小,以使用 BitmapFactory 方法简化过程。

为了结束这个问题,我将根据我最近从服务器获取图像时的情况来回答这个问题:

正如 Google 所建议的那样: https://youtu.be/HY9aaXHx8yA?t=4m4s

我使用 Picasso 从互联网上获取图像。这个库处理所有大小调整和缓存非常酷,并简化了一切。它甚至可以使用本地资源。

我建议使用这个库来完成这项任务。

干杯。