多屏UI设计实现

时间:2018-11-15 09:48:52

标签: android android-studio android-layout

我最近6个月从事android开发,最近从客户那里得到了一个设计。我实施了设计,他说这与设计师所做的并不完全一样。然后他又给了我以下规格的设计

enter image description here

我的问题是-是否如他所给的那样增加间距,是否在所有设备中都适用?否则我该如何解释他说的错了?

请纠正我是我错了还是他错了

2 个答案:

答案 0 :(得分:0)

正如其他用户告诉您的那样,px不是相对尺寸。举例来说,我们假设手机的屏幕尺寸为5x10厘米,模型的分辨率为hdpi(480x854 px)。对于此设备,水平边距100px占用屏幕宽度的20%以上。但是,我们还有另一部具有相同屏幕尺寸(5x10厘米)的手机,但是这款手机价格更高且分辨率更高(xxhdpi-> 1080x1920 px)。在这种情况下,水平边距为100 px不会占用屏幕宽度的10%以上。因此,需要相对尺寸为dp。

与您的设计师打交道的一种可能方法是,选择一种进行设计的设备(常见的一种)。这是与某些设备及其配置的有用链接:https://material.io/tools/devices/。我建议您使用720x1080 px(xhdpi)作为MotoG或Nexus 4进行设计。在这种情况下,您只需要将他提供的px值除以2就可以得到每个dp值。

答案 1 :(得分:0)

您应该考虑3件事:

  1. Px-dp比例: 阅读此答案:https://stackoverflow.com/a/2025541/5884956(实际上,整个帖子都很有用)

  2. 百分比不适用于您: 通过使用dp而不是px可以改善的是具有相同屏幕的屏幕 aspect ratio和不同的pixel density,布局看起来完全相同(与密度无关的像素)。这意味着屏幕内部中的所有内容都将以相同的比例显示(按钮,图像视图,边距等)。 然后,您会想象所有android手机都具有相同的宽高比(例如16:9)。也就是说,每16 dp高的宽度就有9 dp的宽度,换句话说,如果您将手机的高度除以手机的宽度,则会得到与以下相同的解决方案16/8。 但这与现实相去甚远。最常见的是16:9,但某些手机(例如“三星Galaxy S8”)的比例为18:5:9,并且纵横比更多:https://material.io/tools/devices/。如果使用%,则当您以不同的宽高比看到设计时,您的项目将看起来很拉伸。这不是我们想要的。

  3. 大小很重要 到这个时候,您应该确信dp是最好的解决方案,如果不是,请您改善我的回答。 Buuuuuut,随着屏幕尺寸的变化,dp的数量也会变化。因此,对于尺寸更大的手机(即使是相同的长宽比),我们的dp也更高。然后,您应该知道某些部分将被拉伸(应该是项目和边距之间的空间)。

理想情况下( Android Studio应该为您完成所有这些工作)使用相同的aspect ratio% of dp应该可以确保在更改宽高比时 此更改必须反映在视图之间的空间中。但这是一项艰苦的工作。

TL; DR

  • 选择设计人员要用于设计的标准设备(使用通用设备)。
  • 告诉他们,每台设备的外观都不会完全一样(除非您为每种设备设计不同的布局)。
  • 他们需要确定设计的哪些部分将成为 拉伸(请拉伸空格和边距,而不是按钮或图像)。
  • 让他们使用px可以使他们感到更舒适(同时您必须将其转换为dp并使用dp)。另外,如果您选择“ mdpi”设备dp = px
  • 查看可让您更好地使用这种布局的布局 设计(我对ConstraintLayouts感到满意,但是通过工作,您会发现这并不适合所有情况),但这取决于您。

其他信息

https://developer.android.com/training/multiscreen/screensizes