原生应用程序如何脱离“响应”?

作为对本地移动应用程序基础不太熟悉的人,我试图把我的头围绕似乎应该是相当基本的东西的机制。 然而,在这里search和老谷歌已经离开了我空手。

响应式网站当然依靠媒体查询和断点来确定在浏览器中如何以及在何处显示元素和内容。 结果是用户几乎可以在任何设备上获得相同的体验。 但是最终的结果也是本地应用程序完成的,不是吗? 如果用户在两个不同的Android或iOS手机上具有相同的应用程序,则用户界面(大部分)将呈现一致。 显然,他们没有使用浏览器。 应用开发者是否使用类似于媒体查询的东西? 原生应用程序如何知道以多种不同的分辨率在许多设备上显示UI的方式?

我不确定ios,但在android中,我们使用某种“select器”。 select器是不同的文件夹,对应于电话的分辨率或电话的版本,其中包含相同的variables但具有不同的值。

为了说明,我们可能有一个名为drawable-mdpi的文件夹,另一个名为drawable-hdpi 。 这两个文件夹都包含一个名为home.png的图像文件,每个文件夹的home.png维度不同。 Android所做的是根据您使用的手机自动select(幕后)使用哪个文件夹。 如果你想使用home.png ,你不必担心select哪个文件夹,因为android为你做的,你只需要通过引用@drawable/home来使用图片本身。 更详细的解释在这里

还有另外一个方法出现在3.2版本中,以便更好地pipe理维度。 它涉及检查手机的宽度以select使用哪个尺寸。 你最好检查一下这个博客 。

在iOS中,您通常在界面生成器中使用Autolayout和Constraints,但是您也可以在代码中执行它。 从本质上讲,这些可以让你设置规则,使事物保持在相对于应用程序框架的“相对”位置。

当我最近开始使用这两篇​​文章时,这两篇很棒的文章很有帮助: – http://www.raywenderlich.com/115440/auto-layout-tutorial-in-ios-9-part-1-getting-started-2 – http: //www.raywenderlich.com/115444/auto-layout-tutorial-in-ios-9-part-2-constraints