模拟器正在显示UI的所有元素,它只是将所有内容与预览中的内容进行比较。屏幕截图清晰:
以下是我希望UI出现在模拟器中的方式:
以下是UI在模拟器中的显示方式。如您所见,图像,EditText框和按钮不占用与预览相同的空间百分比。
以下是我的活动的XML代码:
<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical"
android:background="@color/clarksonGreen" >
<ImageView
android:id="@+id/imageView2"
android:layout_width="577dp"
android:layout_height="595dp"
android:alpha="0.1"
android:layout_gravity="center"
app:srcCompat="@drawable/login_background" />
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<ImageView
android:id="@+id/imageView"
android:layout_gravity="center"
android:layout_width="266dp"
android:layout_height="255dp"
android:layout_marginBottom="30dp"
android:layout_marginTop="20dp"
app:srcCompat="@drawable/knight" />
<EditText
android:id="@+id/enterEmail"
android:layout_width="274dp"
android:layout_height="48dp"
android:textColor="@color/closeBlack"
android:ems="10"
android:background="@drawable/rounded_corners"
android:hint="Enter Email"
android:layout_gravity="center"
android:textColorHint="#808080"
android:inputType="textEmailAddress"
android:layout_marginBottom="8dp"
android:layout_marginTop="8dp"
android:layout_marginRight="8dp"
android:layout_marginLeft="8dp" />
<EditText
android:id="@+id/enterPassword"
android:layout_width="273dp"
android:layout_height="46dp"
android:layout_marginBottom="8dp"
android:layout_marginLeft="8dp"
android:layout_marginRight="8dp"
android:layout_marginTop="8dp"
android:background="@drawable/rounded_corners"
android:ems="10"
android:fontFamily="sans-serif"
android:hint="Enter Password"
android:layout_gravity="center"
android:inputType="textPassword"
android:textColor="@color/closeBlack"
android:textColorHint="#808080" />
<Button
android:id="@+id/logIn"
android:layout_gravity="center"
android:layout_width="274dp"
android:layout_height="61dp"
android:layout_marginLeft="8dp"
android:layout_marginRight="8dp"
android:layout_marginTop="8dp"
android:background="@color/clarksonYellow"
android:text="Log in"
android:textColor="@color/clarksonGreen"
android:textSize="20dp" />
</LinearLayout>
</FrameLayout>
答案 0 :(得分:0)
dp
代表密度像素,因此参数如android:layout_width
&amp; android:layout_height
将根据您使用的设备密度进行缩放。根据屏幕密度的不同,它可能略有不同。
而不是指定特定宽度&amp;高度,像ImageView
和&amp; EditText
,应用match_parent
或wrap_content
&amp;然后提供适当的margin
&amp; padding
。它会按照您的要求在每个屏幕上进行缩放。
参考:Supporting Multiple Screens - Android Developers Documentation