在Android中支持不同的屏幕尺寸

时间:2017-04-20 15:01:11

标签: android android-layout android-studio

我对如何支持所有不同的Android屏幕尺寸感到非常困惑。我已经检查了this answer,此site,官方documentations以及其他许多答案,但我仍然感到困惑所以请不要将此标记为重复

我已经创建了layout-sw120dp, layout-sw160dp, layout-sw240dp, layout-sw320dp, layout-sw480dp(我只需要支持最多6英寸,所以我不创建layout-sw600dp)。

我需要做的是只有一个布局并将其复制到每个不同的文件夹中,以便Android自己进行选择,或者我还需要更改每个布局中的值?

3 个答案:

答案 0 :(得分:0)

  

我需要做的是只有一个布局并将其复制到每个不同的文件夹中,或者我还需要更改每个布局中的值?

首先删除您创建的layout-sw120dplayout-sw160dplayout-sw240dplayout-sw320dplayout-sw480dp目录。或者,至少暂时忽略它们。

然后,您开始实现您的UI,将布局资源放在res/layout/

然后,对于那些在某些情况下需要不同的布局,然后创建一个表示您想要不同布局时的大小的目录。将布局从res/layout/复制到新目录中,然后修改该副本以反映您想要的任何更改。

换句话说,每个布局的一个副本位于res/layout/,并且您需要覆盖,并在需要的特定目录中使用附加的,已修改的副本要改变的UI。

答案 1 :(得分:0)

这是一个老年人的问题的答案,你会看到很多答案,但仍然不适合所有类型。虽然面对同样的问题,但我所做的却是使用PercentRelativeLayout。根据我的说法,这是一个相对较新的功能,从Android support version 23.0(android sdk manager)和其中一个大型游戏改变者开始,因为它允许 开发人员指定相对于布局大小的块百分比。由于它是按百分比计算的,因此适合所有尺寸不同的屏幕,但保持比率

当然,这种方法涉及一些试验和错误以及许多试验,但我发现这种方法最容易实现,并且让人头疼的维护各种屏幕尺寸的尺寸。

很少有教程可以帮助您入门:

https://www.tutorialspoint.com/android/android_relative_layout.htm https://guides.codepath.com/android/Constructing-View-Layouts

答案 2 :(得分:0)

如果要为每个屏幕密度使用相同的布局,则不需要创建不同的文件夹。只使用一个名为" layout"并且系统将针对每个密度解释它。但是,这可能导致某些物理设备上的奇怪布局,具体取决于它们的屏幕尺寸和密度...... 如果您的应用程序支持方向更改,您必须注意的另一点是,您必须为纵向和景观方向设计布局。这是通过复制用于密度的文件夹并添加" -port"或" -land"根据您的应用当前正在运行的设备的实际方向通知系统必须使用哪一个。 如果要精确定义应用程序外观,则必须为每个密度自定义布局。如果您使用位图,则必须自定义它们(例如,您的应用程序图标应定义为不同的大小,以便保持良好的每个屏幕密度。)就像布局一样,你必须创建" drawable -..."文件夹包含相应版本的位图。