我最近6个月从事android开发,最近从客户那里得到了一个设计。我实施了设计,他说这与设计师所做的并不完全一样。然后他又给了我以下规格的设计
我的问题是-是否如他所给的那样增加间距,是否在所有设备中都适用?否则我该如何解释他说的错了?
请纠正我是我错了还是他错了
答案 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件事:
Px-dp比例: 阅读此答案:https://stackoverflow.com/a/2025541/5884956(实际上,整个帖子都很有用)
百分比不适用于您:
通过使用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/。如果使用%,则当您以不同的宽高比看到设计时,您的项目将看起来很拉伸。这不是我们想要的。
大小很重要
到这个时候,您应该确信dp
是最好的解决方案,如果不是,请您改善我的回答。 Buuuuuut,随着屏幕尺寸的变化,dp
的数量也会变化。因此,对于尺寸更大的手机(即使是相同的长宽比),我们的dp也更高。然后,您应该知道某些部分将被拉伸(应该是项目和边距之间的空间)。
理想情况下( Android Studio应该为您完成所有这些工作)使用相同的aspect ratio
,% of dp
应该可以确保在更改宽高比时
此更改必须反映在视图之间的空间中。但这是一项艰苦的工作。
TL; DR
px
可以使他们感到更舒适(同时您必须将其转换为dp
并使用dp
)。另外,如果您选择“ mdpi”设备dp
= px
。其他信息
https://developer.android.com/training/multiscreen/screensizes