Android:手机和平板电脑之间很难实现相同的布局比例/长宽比

问题描述 投票:0回答:1

当我说“相同的布局比例”时,我主要指的是文本大小,但也指一般的视图。

我一直读到 sp 文本大小单位与屏幕无关,但这并不完全正确。我将在下面插入我的应用程序欢迎屏幕的两个屏幕截图:

Welcome screen (PHONE):

Welcome Screen Phone

Welcome screen (TABLET):

Welcome Screen Tablet

您可以清楚地看到文本如何不保留比例/长宽比。

我正在对这个主题进行深入研究,发现下一个非常有趣/很酷的库:

Intuit/ssp

这个库做得非常出色,可以让您获得与屏幕无关的文本大小单位。您可以在我的下一个屏幕截图中看到它:

Welcome Screen with ssp (TABLET):

Welcome Screen ssp Tablet

现在您可以看到文本大小如何与手机更加一致(如果不准确)。

到目前为止一切都很好,图书馆是一个奇妙的发现,但现在看看我的登录屏幕:

Login (PHONE):

Login Phone

Login ssp in TextViews (TABLET):

Login ssp in TextViews Tablet

现在在平板电脑的登录屏幕中,您可以看到,如果将 ssp 应用于 TextView,所有文本根据手机比例看起来会更好,但 EditText 看起来很小。

然后我尝试将 ssp 应用于所有 TextView 和 EditText:

Login ssp to all views (TABLET):

Login ssp to all views

你可以再次看到它看起来好多了。

那有什么问题吗?

我非常相信最后一种方法,将 ssp 应用于所有视图文本大小,但是由此产生了两个问题:

  1. 我将不得不修改我的应用程序中的所有视图(这不是问题,但我有很多)。
  2. 一些元素的长宽比仍然没有保留,例如,看看手机中的青色背景布局看起来比平板电脑中的方形得多(我也开始怀疑 dp 是否有效,我主要用于填充/ margin 是与屏幕无关的单位)。

有了这一切,我有点困惑我们,开发人员,应该如何处理这个问题,以便在手机和平板电脑之间拥有一致的布局,以及在继续更改应用程序中的所有视图以使用 ssp 之前我主要关心的问题(一项艰巨的任务)是确保我朝着正确的方向前进。

在 GitHub 页面上清楚地写着:

"Use it carefully! for example, in most cases you still need to design a different layout for tablets."

所以,这也是我关心的问题之一。

小伙伴们有什么想说的吗?

有没有更好的方法来处理这个问题?

编辑:平板电脑有不同的布局。

忘了提及那些人,但在过去我对平板电脑有不同的布局,在我看来这是一个非常糟糕的想法/选项,因为每个布局都有两个副本,并且由于需要任何布局修改,所以你总是有记得修改两次,所以不行!

我最终只采用了一种布局,试图在两个屏幕之间获得最佳匹配,这就是这篇文章的由来。

编辑2:

在阅读了你们中的一些人留下的宝贵评论后,我仍然认为尝试在手机和平板电脑上实现一致/美观的布局,只有一个布局文件将是最好的方法,主要是在就可维护性而言,因此,绝对考虑到您的意见,我将尽力实现这一目标。

现在,在读到一条评论说我的欢迎屏幕中的按钮在平板电脑中看起来很大后,我的脑海中出现了一个新的担忧。

与手机屏幕相比,平板电脑应该具有精确(或非常相似)的长宽比,即使有更大的按钮,也应该被认为是比具有较小(可能不那么粗糙)按钮但有大量空白(空的)屏幕更好的方法)空间还是反之亦然?这两种方法哪一种更通用?

android android-layout text-size density-independent-pixel proportions
1个回答
0
投票

在阅读了 @tyczj 和 @ianhanniballake 的评论后,我开始查看不同的应用程序,并注意到首选方法是保持元素大小相同而不是保持相同的屏幕比例,即使在第一种情况下你最会就像以大量空白/空白空间结尾一样,所以这就是我的应用程序将遵循的方法。

© www.soinside.com 2019 - 2024. All rights reserved.