如何为所有屏幕尺寸制作灵活的UI?

时间:2019-03-31 03:34:42

标签: java android xml

如何在不同的屏幕上显示相同的用户界面?

我制作了一个应用程序,并对其进行了测试,使其可以在两台具有不同屏幕尺寸的不同手机上运行,​​并且外观差异很大。

以下是一些屏幕截图:

电话1:Huawei P20 lite(5.83英寸):

https://drive.google.com/file/d/1_wa9bcEa46Ygduo47Q8DNTu9-DIhOv5h/view?usp=drivesdk

电话2:三星Galaxy J1(4.31英寸):

https://drive.google.com/file/d/1fNDLea4Vv6LcX-vy-T1S4-XyhHN59pKD/view?usp=drivesdk

如何使它们看起来相同?

3 个答案:

答案 0 :(得分:1)

您可以通过“选项”下方实现此目标

选项1:为每种设备分辨率制作单独的布局文件

选项2:使用“在库下面”将自动支持多个屏幕。

SDP:https://github.com/intuit/sdp SSP:https://github.com/intuit/ssp

答案 1 :(得分:0)

我认为您需要花费更多时间来专门研究android文档:

  1. DP vs SP-字体大小。了解您应该使用哪一个 字体设置(操作系统默认设置或用户替代)如何影响 每个设置大小。通过这个SO讨论- What is the difference between "px", "dip", "dp" and "sp"?

  2. 了解android上可用的不同布局以及何时和     如何使用它们。花一些时间了解以下方面的独特属性     他们每个人。看看这个     https://developer.android.com/training/constraint-layout

  3. 了解填充和边距的工作原理以及区别。 如果您使用的是recyclerview,请了解它们在何时的行为 您将它们应用于recyclerview与孩子。尝试不同的组合并直观地看到输出是最好的学习方法。
  4. 启用“显示布局边界”以帮助您调试布局问题。查看:https://developer.android.com/studio/debug/dev-options

您不需要任何库来实现您的目标。布局似乎非常简单。

答案 2 :(得分:0)

将以下内容添加到您的项目级Gradle文件中:

compile 'com.intuit.sdp:sdp-android:1.0.5'

用法:在代码中,无论您要指定 10dp 之类的尺寸,都将其更改为 @ dimen / _10sdp 。就像我在此示例中指定的ImageView。

        <ImageView
            android:id="@+id/your_image"
            android:layout_marginTop="@dimen/_10sdp"
            android:layout_marginBottom="@dimen/_10sdp"
            android:layout_width="@dimen/_100sdp"
            android:layout_height="@dimen/_100sdp"
            android:src="@drawable/logo"/>

这将使您的应用程序在不同设备上的外观相同。