【发布时间】:2023-04-06 10:20:01
【问题描述】:
我做了一个简单的布局,有一个ImageView 和两个Buttons。
预览中显示的布局如下:
Layout as shown in android studio preview
在运行我为 Lg3(5.5",1440x2560)创建的模拟器时,我得到了以下结果(就像我设计的一样好)
但是,当我实际将apk下载到真正的Lg3设备时,结果如下:
我尝试使用 layout-normal、layout-small、layout-large,但没有任何效果。
.xml 如下所示:
<?xml version="1.0" encoding="utf-8"?>
<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:background="@color/White"
tools:context=".MainActivity">
<ImageView
android:id="@+id/main_background"
android:layout_width="230dp"
android:layout_height="230dp"
android:layout_alignParentTop="true"
android:layout_centerHorizontal="true"
android:layout_marginTop="115dp"
android:src="@drawable/main_background" />
<Button
android:id="@+id/Sign_In"
android:layout_width="match_parent"
android:layout_height="60dp"
android:layout_marginLeft="30dp"
android:layout_marginRight="30dp"
android:layout_marginTop="160dp"
android:layout_below="@+id/main_background"
android:layout_centerInParent="true"
android:background="@drawable/white_buttons"
android:fontFamily="@font/assistant"
android:text="Sign In"
android:textAllCaps="false"
android:textColor="@color/Fonts"
android:textSize="20dp" />
<Button
android:id="@+id/Sign_Up"
android:layout_width="match_parent"
android:layout_height="60dp"
android:layout_below="@+id/Sign_In"
android:layout_centerInParent="true"
android:layout_marginTop="20dp"
android:layout_marginLeft="30dp"
android:layout_marginRight="30dp"
android:background="@drawable/colored_buttons"
android:fontFamily="@font/assistant"
android:text="Sign Up"
android:textAllCaps="false"
android:textColor="@color/White"
android:textSize="20dp" />
</RelativeLayout>
我想知道是不是我做错了什么会在模拟器和真实设备之间产生不相等的结果。
非常感谢
【问题讨论】:
-
我的猜测是实际设备的屏幕密度与AVD中配置的屏幕密度不同。在您的布局方面,您的设计假定屏幕最小高度为
645dp(图像为115dp上边距和230dp高度,160dp上边距和60dp高度为Sign_In和@987654334 @ 上边距和60dp高度为Sign_Up)。那大约是 4 英寸,并且会有很多设备的屏幕比这更小。 -
检查我对答案的补充,希望它能教你一些东西:)
标签: android layout android-emulator android-relativelayout