根据屏幕密度下载不同的资源

Posted

技术标签:

【中文标题】根据屏幕密度下载不同的资源【英文标题】:Downloading Different resources based on screen density 【发布时间】:2015-01-23 22:55:50 【问题描述】:

所以我知道有一种非常简单的方法可以让 ios 为当前运行的设备选择正确大小的资源,即:name.png、name@2x.png、name@3x.png。

我正在创建的应用程序有数百张图片,我只想在用户查看它们时下载它们,或者从 url 异步获取:

let url = NSURL(string: image.url)
let data = NSData(contentsOfURL: url!)
imageURL.image = UIImage(data: data!)

我是否必须创建一些方法来检查设备类型或检查屏幕分辨率以查看如果图像在应用程序中它会使用什么资产。或者有什么帮手吗?

【问题讨论】:

UIScreen scale。返回 1、2 或 3。 【参考方案1】:

有几种方法可以解决这个问题。在应用程序中,您可以根据UIScreen.mainScreen().scale修改图片的url路径(例如将http://.../image.png转换为http://.../image@2x.png)。将图像命名为 @2x 或 @3x 不会自动缩放 - 它们会大 2 或 3 倍,您必须正确设置 UIImageView 大小才能显示它们。

或者,您可以将比例作为 GET 参数 http://.../image.png?imageScale=2 传递给 url,并让您的 web 服务处理逻辑并返回正确的图像。正确调整 UIImageView 的大小仍然很重要 - 与 @1x 图像的尺寸一致。

【讨论】:

以上是关于根据屏幕密度下载不同的资源的主要内容,如果未能解决你的问题,请参考以下文章

Android官方开发文档Training系列课程中文版:多样屏幕之支持不同的屏幕密度

在 Android 上针对不同的屏幕尺寸和密度重用可绘制图像

Android 屏幕适配屏幕适配基础概念 ④ ( 屏幕适配限定符 | 手机/平板电脑设备屏幕适配 )

Android 屏幕适配屏幕适配基础概念 ④ ( 屏幕适配限定符 | 手机/平板电脑设备屏幕适配 )

Android 丨 获取屏幕尺寸与密度

Android 屏幕适配屏幕适配基础概念 ③ ( 屏幕像素密度 DPI 与素材大小关联 | 屏幕像素密度 DPI 与 屏幕密度限定符关联 )