即使使用 dp,布局也不适合屏幕截图
Layout doesnt fit screenshot even when using dp
我是 Android 编程的新手,正在努力设计我的 Tic Tac Toe 应用程序。
在布局编辑器中,我在屏幕底部有一个按钮。当我 运行 我的 phone 上的应用程序时,只有按钮的顶部可见,因为我的屏幕不够大。任何人都可以指出正确的方向并解释为什么会这样吗?
这是我 phone 上的应用程序中的图片:
activity_main.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingLeft="16dp"
android:paddingRight="16dp"
android:background="#2190F3"
android:orientation="vertical" >
<TextView
android:id="@+id/textView2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:layout_marginTop="20dp"
android:textSize="40sp"
android:textStyle="bold"
android:textColor="#000000"
android:text="@string/title" />
<LinearLayout
android:layout_marginTop="100dp"
android:layout_width="wrap_content"
android:layout_gravity="center_horizontal"
android:layout_height="wrap_content"
android:orientation="horizontal">
<Button
android:id="@+id/button3"
android:layout_width="120dp"
android:layout_height="120dp"
android:layout_weight="3"
android:text="X" />
<Button
android:id="@+id/button"
android:layout_width="120dp"
android:layout_height="120dp"
android:layout_weight="3"
android:text="Button" />
<Button
android:id="@+id/button2"
android:layout_width="120dp"
android:layout_weight="3"
android:layout_height="120dp"
android:text="Button" />
</LinearLayout>
<LinearLayout
android:layout_width="wrap_content"
android:layout_gravity="center_horizontal"
android:layout_height="wrap_content"
android:orientation="horizontal">
<Button
android:id="@+id/button4"
android:layout_width="120dp"
android:layout_height="120dp"
android:layout_weight="3"
android:text="X" />
<Button
android:id="@+id/button5"
android:layout_weight="3"
android:layout_width="120dp"
android:layout_height="120dp"
android:text="Button" />
<Button
android:id="@+id/button6"
android:layout_weight="3"
android:layout_width="120dp"
android:layout_height="120dp"
android:text="Button" />
</LinearLayout>
<LinearLayout
android:layout_width="wrap_content"
android:layout_gravity="center_horizontal"
android:layout_height="wrap_content"
android:orientation="horizontal">
<Button
android:id="@+id/button7"
android:layout_width="120dp"
android:layout_height="120dp"
android:layout_weight="3"
android:text="X" />
<Button
android:id="@+id/button8"
android:layout_width="120dp"
android:layout_height="120dp"
android:layout_weight="3"
android:text="Button" />
<Button
android:id="@+id/button9"
android:layout_width="120dp"
android:layout_weight="3"
android:layout_height="120dp"
android:text="Button" />
</LinearLayout>
<Button
android:id="@+id/button11"
android:layout_width="120dp"
android:layout_height="60dp"
android:layout_marginTop="50dp"
android:layout_gravity="center_horizontal"
android:text="Button" />
</LinearLayout>
这是因为您的预览屏幕截图正在模拟特定的 dpi,而您的实际物理设备具有其他 dpi。这是一种误解,通过在 DP 中插入大小,您将获得一对一的相似性。有关详细信息,check this
至于你的情况,建议是取消硬编码尺寸并使用 'weight'
调整你的 UI 尺寸
改用这个,
<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="#2190F3"
android:orientation="vertical"
android:paddingLeft="16dp"
android:paddingRight="16dp">
<TextView
android:id="@+id/textView2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:layout_marginTop="20dp"
android:text="@string/title"
android:textColor="#000000"
android:textSize="40sp"
android:textStyle="bold" />
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:layout_marginTop="100dp"
android:orientation="horizontal">
<Button
android:id="@+id/button3"
android:layout_width="0dp"
android:layout_height="120dp"
android:layout_weight="1"
android:text="X" />
<Button
android:id="@+id/button"
android:layout_width="0dp"
android:layout_height="120dp"
android:layout_weight="1"
android:text="Button" />
<Button
android:id="@+id/button2"
android:layout_width="0dp"
android:layout_height="120dp"
android:layout_weight="1"
android:text="Button" />
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:orientation="horizontal">
<Button
android:id="@+id/button4"
android:layout_width="0dp"
android:layout_height="120dp"
android:layout_weight="1"
android:text="X" />
<Button
android:id="@+id/button5"
android:layout_width="0dp"
android:layout_height="120dp"
android:layout_weight="1"
android:text="Button" />
<Button
android:id="@+id/button6"
android:layout_width="0dp"
android:layout_height="120dp"
android:layout_weight="1"
android:text="Button" />
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:orientation="horizontal">
<Button
android:id="@+id/button7"
android:layout_width="0dp"
android:layout_height="120dp"
android:layout_weight="1"
android:text="X" />
<Button
android:id="@+id/button8"
android:layout_width="0dp"
android:layout_height="120dp"
android:layout_weight="1"
android:text="Button" />
<Button
android:id="@+id/button9"
android:layout_width="0dp"
android:layout_height="120dp"
android:layout_weight="1"
android:text="Button" />
</LinearLayout>
<Button
android:id="@+id/button11"
android:layout_width="120dp"
android:layout_height="60dp"
android:layout_gravity="center_horizontal"
android:layout_marginTop="50dp"
android:text="Button" />
希望它能奏效。这不是最好的解决方案。最好的解决方案是使用 constraintlayout。
我是 Android 编程的新手,正在努力设计我的 Tic Tac Toe 应用程序。 在布局编辑器中,我在屏幕底部有一个按钮。当我 运行 我的 phone 上的应用程序时,只有按钮的顶部可见,因为我的屏幕不够大。任何人都可以指出正确的方向并解释为什么会这样吗?
这是我 phone 上的应用程序中的图片:
activity_main.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingLeft="16dp"
android:paddingRight="16dp"
android:background="#2190F3"
android:orientation="vertical" >
<TextView
android:id="@+id/textView2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:layout_marginTop="20dp"
android:textSize="40sp"
android:textStyle="bold"
android:textColor="#000000"
android:text="@string/title" />
<LinearLayout
android:layout_marginTop="100dp"
android:layout_width="wrap_content"
android:layout_gravity="center_horizontal"
android:layout_height="wrap_content"
android:orientation="horizontal">
<Button
android:id="@+id/button3"
android:layout_width="120dp"
android:layout_height="120dp"
android:layout_weight="3"
android:text="X" />
<Button
android:id="@+id/button"
android:layout_width="120dp"
android:layout_height="120dp"
android:layout_weight="3"
android:text="Button" />
<Button
android:id="@+id/button2"
android:layout_width="120dp"
android:layout_weight="3"
android:layout_height="120dp"
android:text="Button" />
</LinearLayout>
<LinearLayout
android:layout_width="wrap_content"
android:layout_gravity="center_horizontal"
android:layout_height="wrap_content"
android:orientation="horizontal">
<Button
android:id="@+id/button4"
android:layout_width="120dp"
android:layout_height="120dp"
android:layout_weight="3"
android:text="X" />
<Button
android:id="@+id/button5"
android:layout_weight="3"
android:layout_width="120dp"
android:layout_height="120dp"
android:text="Button" />
<Button
android:id="@+id/button6"
android:layout_weight="3"
android:layout_width="120dp"
android:layout_height="120dp"
android:text="Button" />
</LinearLayout>
<LinearLayout
android:layout_width="wrap_content"
android:layout_gravity="center_horizontal"
android:layout_height="wrap_content"
android:orientation="horizontal">
<Button
android:id="@+id/button7"
android:layout_width="120dp"
android:layout_height="120dp"
android:layout_weight="3"
android:text="X" />
<Button
android:id="@+id/button8"
android:layout_width="120dp"
android:layout_height="120dp"
android:layout_weight="3"
android:text="Button" />
<Button
android:id="@+id/button9"
android:layout_width="120dp"
android:layout_weight="3"
android:layout_height="120dp"
android:text="Button" />
</LinearLayout>
<Button
android:id="@+id/button11"
android:layout_width="120dp"
android:layout_height="60dp"
android:layout_marginTop="50dp"
android:layout_gravity="center_horizontal"
android:text="Button" />
</LinearLayout>
这是因为您的预览屏幕截图正在模拟特定的 dpi,而您的实际物理设备具有其他 dpi。这是一种误解,通过在 DP 中插入大小,您将获得一对一的相似性。有关详细信息,check this
至于你的情况,建议是取消硬编码尺寸并使用 'weight'
调整你的 UI 尺寸改用这个,
<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="#2190F3"
android:orientation="vertical"
android:paddingLeft="16dp"
android:paddingRight="16dp">
<TextView
android:id="@+id/textView2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:layout_marginTop="20dp"
android:text="@string/title"
android:textColor="#000000"
android:textSize="40sp"
android:textStyle="bold" />
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:layout_marginTop="100dp"
android:orientation="horizontal">
<Button
android:id="@+id/button3"
android:layout_width="0dp"
android:layout_height="120dp"
android:layout_weight="1"
android:text="X" />
<Button
android:id="@+id/button"
android:layout_width="0dp"
android:layout_height="120dp"
android:layout_weight="1"
android:text="Button" />
<Button
android:id="@+id/button2"
android:layout_width="0dp"
android:layout_height="120dp"
android:layout_weight="1"
android:text="Button" />
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:orientation="horizontal">
<Button
android:id="@+id/button4"
android:layout_width="0dp"
android:layout_height="120dp"
android:layout_weight="1"
android:text="X" />
<Button
android:id="@+id/button5"
android:layout_width="0dp"
android:layout_height="120dp"
android:layout_weight="1"
android:text="Button" />
<Button
android:id="@+id/button6"
android:layout_width="0dp"
android:layout_height="120dp"
android:layout_weight="1"
android:text="Button" />
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:orientation="horizontal">
<Button
android:id="@+id/button7"
android:layout_width="0dp"
android:layout_height="120dp"
android:layout_weight="1"
android:text="X" />
<Button
android:id="@+id/button8"
android:layout_width="0dp"
android:layout_height="120dp"
android:layout_weight="1"
android:text="Button" />
<Button
android:id="@+id/button9"
android:layout_width="0dp"
android:layout_height="120dp"
android:layout_weight="1"
android:text="Button" />
</LinearLayout>
<Button
android:id="@+id/button11"
android:layout_width="120dp"
android:layout_height="60dp"
android:layout_gravity="center_horizontal"
android:layout_marginTop="50dp"
android:text="Button" />
希望它能奏效。这不是最好的解决方案。最好的解决方案是使用 constraintlayout。