【问题标题】:Phone and tablet support for button spacing on the layout view手机和平板电脑支持布局视图上的按钮间距
【发布时间】:2015-04-18 16:11:27
【问题描述】:

我的 Android 项目中有以下布局。因为,我想支持不同尺寸的安卓设备和标签的视图。

layout-large
layout-normal
layout-small
layout-xlarge

在 App Gradle 中,它已设置为从分钟开始。 9 - 22。

当我在 5 英寸手机、7 英寸平板电脑和小于 5 英寸的手机上进行测试时,我看到 5 英寸手机和 7 英寸平板电脑,它总是使用“layout-large”,因此有 2 个按钮放置在中间水平的屏幕在平板电脑中没有给出适当的间距,它在 5 英寸手机中按预期显示了适当的间距。能否请您告诉我如何处理布局中的按钮间距以支持 5 英寸手机和 7 英寸单一布局的布局。环顾四周,建议多多,困惑多多……看了android链接,Android developer link看不懂。

layout-large.xml

    <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent"
    android:layout_height="match_parent" android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    android:paddingBottom="@dimen/activity_vertical_margin" tools:context=".MyActivity"
    android:background="@drawable/bg">

    <Button
        android:layout_width="70px"
        android:layout_height="70px"
        android:id="@+id/PlayPauseButton"
        android:onClick="doClick"
        android:layout_marginLeft="81dp"
        android:layout_marginStart="81dp"
        android:layout_marginBottom="169dp"
        android:layout_alignParentBottom="true"
        android:layout_alignParentLeft="true"
        android:layout_alignParentStart="true" />

    <Button
        android:layout_width="70px"
        android:layout_height="70px"
        android:id="@+id/StopButton"
        android:onClick="stopAudio"
        android:layout_alignTop="@+id/PlayPauseButton"
        android:layout_alignParentRight="true"
        android:layout_alignParentEnd="true"
        android:layout_marginRight="102dp"
        android:layout_marginEnd="102dp" />

</RelativeLayout>

更新:

我的问题更加简单。我有 3.2 英寸手机、4.2 英寸手机、4.3 英寸手机、4.5 英寸手机、5 英寸手机和一个 7 英寸平板电脑/我想在所有这些设备中强制支持我的应用程序。我在 gradle 中设置了 min 9 max 22。我现在应该怎么做才能创建“布局”和“可绘制”文件夹?看到 android 和其他论坛链接中的链接,我感到很困惑。我在所有布局中都有相对布局,它设置了宽度和高度的 match_parent。我应该在这里设置静态宽度和高度吗? – 斯特拉刚刚

【问题讨论】:

标签: android


【解决方案1】:

对于不同屏幕尺寸的不同布局,请尝试将布局文件夹命名为 layout-sw600dp 而不是 layout-large

能否请您告诉我如何处理布局中的按钮间距,以支持 5 英寸手机和 7 英寸单一布局的布局。

尝试在 values/dimens.xmlvalues-sw600dp/dimens.xml 中声明一个维度 (&lt;dimen name="dimenName"&gt;30dp&lt;/dimen&gt;) 并使用适当的值,并在布局中使用 @dimen/dimenName 访问它们。

如果您需要更多帮助,请发布一些问题的屏幕截图。您还应该尝试使用dp 单位而不是px

【讨论】:

  • 我首先有疑问,如果我使用 layout-sw600dp 而不是 layout-large 会有什么不同?我应该如何处理其他文件夹 layout-normal layout-small 和 layout-xlarge?
  • @Stella ipavl 的回答是正确的。您需要的所有信息都在文档中。阅读developer.android.com/guide/practices/screens_support.html
  • @Stella 基本上是 layout-normal/small/large... 等是支持不同屏幕尺寸的旧的、不精确的方式,layout-swXXXdp 是自 3.x 以来的方式
  • 我同意。我的问题是,如果为 7 英寸平板电脑设置 layout-sw600dp,那么我应该为手机保留什么布局,我对 android.developer 链接感到困惑?我会问一个简单的问题,我想支持 3.2 英寸手机到 7 英寸平板电脑。应该如何制作layout和drawable文件夹?
【解决方案2】:

根据Platform Versions,只有 6.8% 的设备低于 API 4.0.3,根据Screen Sizes and Densities,只有 4.4% 的屏幕小于正常尺寸。

  • 所以你可以DELETE layout-small 文件夹并制作你的 minSdkVersion14
  • 现在您可以开始使用新的大小组来制作布局,即sw&lt;N&gt;dp

引用here

在使用通用尺寸组时设计 7 英寸平板电脑很棘手的原因是 7 英寸平板电脑在技术上与 5 英寸手机属于同一组(大组)。虽然这两种设备看起来很接近在大小上,应用程序 UI 的空间量明显不同,用户交互的风格也是如此。

您需要为 5" 和 7" 设备定义不同的布局,因此您应该在 layout-sw600dp 文件夹中为 7" 进行布局,其余所有内容都可以放入 layout 文件夹中(除非您将 layout-sw720dp 设置为 10 英寸平板电脑)。

如果您仍需要 5" 设备和 5" 设备 设置 layout-large,为 layout设备

【讨论】:

  • 我的问题更加简单。我有 3.2 英寸手机、4.2 英寸手机、4.3 英寸手机、4.5 英寸手机、5 英寸手机和一个 7 英寸平板电脑/我想在所有这些设备中强制支持我的应用程序。我在 gradle 中设置了 min 9 max 22。我现在应该怎么做才能创建“布局”和“可绘制”文件夹?看到 android 和其他论坛链接中的链接,我感到很困惑。我在所有布局中都有相对布局,它设置了宽度和高度的 match_parent。我应该在这里设置静态宽度和高度吗?我怎么知道为其他手机设置“布局”应该是什么“DP”?
  • 还有一个问题,如果我保持“layout-large”,资源是否可以自动用于5寸手机?如果我保持“布局”,是否可以为
  • layout 适用于 3.2"、4.2"、4.3" 和 4.5"。如果 5" 看起来不好,也可以尝试使用 5" 添加 layout-large 为 5"。 layout-sw600dp 是 7" 所必需的。同样,您可以区分 drawables 文件夹。
    您还可以看到 ---> 如果布局不需要项目的某些指定宽度(在 DP 中),您可以使用LinearLayoutweight,它们有助于使非常复杂的布局在所有屏幕上看起来都一样。
  • 好的,但是当我使用“layout”、“layout-large”、“layout-small”、“layout-sw600dp”和“layout-large”时,我发现它适用于 4.5 英寸手机被采用“布局大”资源,而不是“布局”
  • 我没有检查过这么多设备,这是对我在答案中给出的链接之一中读到的内容的一般解释。它被引用 5" 使用layout-large,无论如何您说您可以将layout-large 用于 4.5" 和 5"。但是在定义 layout-sw600dp 之后,7" 将仅从 sw600dp = 最小的 600dp 中获取,这对于任何设备
【解决方案3】:

您必须使文件夹仅可绘制,然后将所有图像放入其中。这是所有类型的通用文件夹。然后,您可以将按钮置于相对布局中并设置按钮中心水平=true,并使用填充父项设置高度和宽度,并将左右边距设置为 20dp 以设置在中心。

【讨论】:

    猜你喜欢
    • 2018-05-10
    • 2017-03-06
    • 2013-02-15
    • 1970-01-01
    • 1970-01-01
    • 2013-05-16
    • 1970-01-01
    • 1970-01-01
    • 2011-10-31
    相关资源
    最近更新 更多