很抱歉,如果之前已经提出过这个问题,那么很难找到搜索但我们去的地方:
在Android Studio中使用DP像素时,有时会发现与预览相比,元素在真实设备或模拟器上变得更宽或更短。考虑到不同的密度,这是有道理的。
我想知道的是,如果在高度和/或宽度方面存在一定的黄金限制,这将保证如果您将所有内容保持在此限制范围内,屏幕上不会有任何内容,无论设备的屏幕密度如何。
例如,如果我想制作一个棋盘,我希望它尽可能宽,但要始终适合任何屏幕。这里有黄金限制吗?
答案 0 :(得分:-1)
不要使用绝对值,因为你永远不知道屏幕有多大。甚至还有应用程序可以选择向应用程序报告的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
),而不使用任何绝对值。您当然可以根据您的具体需求对其进行更改,因为您可能希望在那里添加更多视图。
注意:不要在现实中这样做。我在示例中使用嵌套权重,这对性能不利。这只是为了让您了解如何做到这一点。