我正在尝试在 Android 中制作应用程序。我希望它应该能够在不同屏幕尺寸的多部手机上运行,所以我研究了开发人员对多屏幕的支持,据此我必须创建 3 个不同的 xml 文件来支持三种不同的屏幕尺寸以及 3 种不同类型的图像对于每种类型的 xml 文件。但是在博客上,我想到了通过使用当前屏幕尺寸方法来做到这一点。所以我很困惑我应该做什么。意味着优化和提高性能的方式。以及哪一款会更完美支持所有类型的屏幕(超大屏幕除外)
4 回答
在 XML 文件中定义高度、宽度和其他参数是更好的选择,而不是在运行时。因为 XML 文件作为活动的元数据(数据载体),并且在调用 onCreate 方法时避免了很多混乱。另外,为图像质量创建不同的文件夹(hdpi、xhdpi、ndpi、ldpi)
7 英寸设备使用 mhpi 10 英寸设备使用 hdpi 和 xhdpi 而 NEXUS 选项卡使用 hdpi 和 xhdpi 而不管它们的大小。手机使用 ldpi 和 ndpi。
美妙之处在于android设备在找到时会自动选择合适的内容,即布局和图像。如果没有找到,它将首先搜索其他布局文件夹,例如在 x-large 文件夹中找不到布局,然后它将搜索大、中、小,其中一个最适合,(如果在其中找不到布局相应的文件夹)。
Nexus会给你带来很多麻烦。要检查您的布局在不同设备上的外观,请尝试使用选项,该选项会告诉您在具有这些高度宽度的设备上的外观,呈现在图形(a 视图)布局中。
您可以为不同的屏幕尺寸使用三种不同的布局,android 会选择合适的布局,但是为每种类型的屏幕格式使用三种不同的布局并不是一个好主意,因为如果屏幕是少于它的罚款,但如果屏幕数量增加,它会变得困难。就像如果您忘记在其中一个屏幕尺寸中添加更改一样,它会崩溃,但有任何异常。您可以做的是将不同大小的图像保存在不同的文件夹中,并通过在 dp 中使用布局权重和边距来练习布局以在一个布局中形成标准。
看我这个答案
表格布局间距问题 并检查此布局是否适用于所有屏幕尺寸。
如果所有屏幕尺寸的设计都相同,则可以使用 dp 并且所有屏幕只有一个 xml。但是您应该支持所有屏幕的图标。
我认为 David Ohanyan 的方式不那么令人困惑,但忘了说点什么......只要有可能,就在 xx_layout、图像等中使用样式,这样文件夹内就会有 1 个 layout.xml 和 3 个样式文件:值、值-小,布局大。
至少对我来说,它比打开 30 个不同的布局文件更容易混淆。