Java 如何为所有屏幕大小创建灵活的用户界面?

Java 如何为所有屏幕大小创建灵活的用户界面?,java,android,xml,Java,Android,Xml,如何使我的ui在不同的屏幕上看起来相同 我制作了一个应用程序,并测试了它在两款不同屏幕大小的手机上的运行,结果看起来非常不同 以下是一些屏幕截图: 电话1:华为P20 lite(5.83英寸): 电话2:Samsung Galaxy J1(4.31英寸): 如何使它们看起来一样?您可以通过以下选项实现这一点 选项1:为每个设备分辨率制作单独的布局文件 选项2:使用以下库它将自动支持多个屏幕 SDP: SSP:我认为您需要花更多的时间阅读android文档,特别关注: DP与SP-字体大小。了

如何使我的ui在不同的屏幕上看起来相同

我制作了一个应用程序,并测试了它在两款不同屏幕大小的手机上的运行,结果看起来非常不同

以下是一些屏幕截图:

电话1:华为P20 lite(5.83英寸):

电话2:Samsung Galaxy J1(4.31英寸):


如何使它们看起来一样?

您可以通过以下选项实现这一点

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

选项2:使用以下库它将自动支持多个屏幕

SDP:
SSP:

我认为您需要花更多的时间阅读android文档,特别关注:

  • DP与SP-字体大小。了解您应该使用哪一个,并 字体设置(操作系统默认值或用户覆盖)如何影响 为每一个设置大小。通过这个讨论-

  • 了解android上可用的不同布局以及何时和何时 如何使用它们。花些时间了解产品的独特属性 他们每个人。看看这个

  • 了解填充和边距是如何工作的,以及它们之间的区别。 如果您使用的是recyclerview,请了解它们在 您可以将它们应用于recyclerview与孩子的比较。尝试不同的组合并直观地看到输出是最好的学习方式
  • 启用“显示布局边界”以帮助调试布局问题。看看:

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

    将以下内容添加到项目级渐变文件中:

    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"/>
    
    
    

    这将使您的应用程序在不同的设备上看起来相同。

    请不要提供链接到屏幕截图的URL。取而代之的是,将屏幕截图作为图像嵌入到问题中,这样读者就不需要单击链接。好的,很公平。但是你能澄清为什么不允许你嵌入你的图像吗,因为这里强烈鼓励这种方法。如果您将屏幕截图发布到图像托管网站(如imgur),您应该能够将图像嵌入到问题中。或者你可以从你的电脑上传它们。