0

抱歉,如果之前有人问过这个问题,在这种情况下,很难通过搜索找到它,但我们开始:

当您在 Android Studio 中使用 DP 像素时,您有时会发现与预览相比,真实设备或模拟器上的元素会变宽或变短。考虑到不同的密度,这是有道理的。

我想知道的是,在高度和/或宽度方面是否有一定的黄金限制,这将保证如果您将所有内容保持在此限制内,则无论屏幕密度如何,都不会出现屏幕外的内容该设备是。

例如,如果我想制作一个棋盘,我希望它尽可能宽,但始终适合任何屏幕。这里有黄金限制吗?

4

1 回答 1

-1

不要为此使用绝对值,因为您永远不知道屏幕有多大。甚至还有App可以选择上报给App的dp。
让我们以您的示例为例。您可能Cell对您的棋盘有一个视图。然后,您可以在 LinearLayout 中对齐它们(View使用而不是Cell):

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    android:weightSum="8">

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="0dp"
        android:layout_weight="1"
        android:orientation="horizontal"
        android:weightSum="8">

        <View
            android:layout_width="0dp"
            android:layout_height="match_parent"
            android:layout_weight="1"
            android:background="@android:color/white" />

        <View
            android:layout_width="0dp"
            android:layout_height="match_parent"
            android:layout_weight="1"
            android:background="@android:color/black" />

        <View
            android:layout_width="0dp"
            android:layout_height="match_parent"
            android:layout_weight="1"
            android:background="@android:color/white" />

        <View
            android:layout_width="0dp"
            android:layout_height="match_parent"
            android:layout_weight="1"
            android:background="@android:color/black" />

        <View
            android:layout_width="0dp"
            android:layout_height="match_parent"
            android:layout_weight="1"
            android:background="@android:color/white" />

        <View
            android:layout_width="0dp"
            android:layout_height="match_parent"
            android:layout_weight="1"
            android:background="@android:color/black" />

        <View
            android:layout_width="0dp"
            android:layout_height="match_parent"
            android:layout_weight="1"
            android:background="@android:color/white" />

        <View
            android:layout_width="0dp"
            android:layout_height="match_parent"
            android:layout_weight="1"
            android:background="@android:color/black" />

    </LinearLayout>

    ...

这将给出以下结果(在上面的示例中,我仅显示第一行):

示例图像

如您所见,屏幕使用完美(因为match_parent在根视图中使用),没有使用任何绝对值。您当然可以根据您的特定需求进行更改,因为您可能希望在此处放置更多视图。

注意:现实中不要这样做。我在示例中使用了嵌套权重,这对性能不利。这只是为了让您了解如何做。

于 2016-04-04T12:48:12.910 回答