我想根据可用的屏幕尺寸调整应用程序的布局,但无法实现相同的效果。我为横向和纵向模式制作了两个布局,但其内容(编辑文本)包含在线性布局中并未根据屏幕调整大小。
以下是我的布局:
Activity_Login(人像):
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical"
tools:context="com.prosares.intralive.LoginActivity2">
<LinearLayout
android:id="@+id/lin_all"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_centerHorizontal="true"
android:layout_centerVertical="true"
android:orientation="vertical"
android:layout_gravity="center">
<ImageView
android:id="@+id/background"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:adjustViewBounds="true"
android:scaleType="centerCrop"
android:src="@drawable/login"
/>
</LinearLayout>
<LinearLayout
android:id="@+id/lin_all1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="vertical"
android:layout_centerHorizontal="true"
android:layout_centerVertical="true"
>
<EditText
android:layout_width="wrap_content"
android:inputType="textPersonName"
android:hint="Username"
android:layout_height="wrap_content"
android:ems="10"
android:background="@drawable/eventpopuprect"
android:drawableLeft="@drawable/username"
android:id="@+id/editText"
android:layout_weight="1"
android:text=""
android:layout_centerHorizontal="true"
android:layout_centerVertical="true"
android:layout_gravity="center"/>
<EditText
android:layout_width="wrap_content"
android:inputType="textPassword"
android:layout_height="wrap_content"
android:ems="10"
android:layout_weight="1"
android:layout_marginTop="10dp"
android:background="@drawable/eventpopuprect"
android:drawableLeft="@drawable/password"
android:id="@+id/editText2"
android:layout_below="@+id/editText"
android:layout_alignLeft="@+id/editText"
android:layout_alignStart="@+id/editText"
android:hint="password"
android:text=""
android:layout_alignRight="@+id/editText"
android:layout_alignEnd="@+id/editText"
android:layout_centerHorizontal="true"
android:layout_centerVertical="true"
android:layout_gravity="center"/>
<ImageButton
android:layout_width="80dp"
android:layout_height="30dp"
android:id="@+id/imageButtonLogin"
android:layout_marginTop="10dp"
android:background="@drawable/login_button"
android:layout_below="@+id/editText2"
android:layout_alignRight="@+id/editText2"
android:layout_alignEnd="@+id/editText2"
android:layout_gravity="right"
android:layout_centerHorizontal="true"
android:layout_centerVertical="true" />
</LinearLayout>
Activity_Login(横向):
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
tools:context="com.prosares.intralive.LoginActivity2"
android:orientation="vertical">
<LinearLayout
android:id="@+id/lin_all"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_centerHorizontal="true"
android:layout_centerVertical="true"
android:orientation="vertical">
<ImageView
android:id="@+id/background"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:adjustViewBounds="true"
android:scaleType="centerCrop"
android:src="@drawable/login"
/>
<LinearLayout
android:id="@+id/lin_all1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:layout_centerVertical="true"
android:orientation="vertical">
<EditText
android:layout_width="wrap_content"
android:layout_marginTop="10dp"
android:inputType="textPersonName"
android:hint="Username"
android:layout_height="wrap_content"
android:ems="10"
android:background="@drawable/eventpopuprect"
android:drawableLeft="@drawable/username"
android:id="@+id/editText"
android:text=""
android:layout_alignParentTop="true"
android:layout_centerHorizontal="true" />
<EditText
android:layout_width="wrap_content"
android:inputType="textPassword"
android:layout_height="wrap_content"
android:ems="10"
android:layout_marginTop="10dp"
android:background="@drawable/eventpopuprect"
android:drawableLeft="@drawable/password"
android:id="@+id/editText2"
android:layout_below="@+id/editText"
android:layout_alignLeft="@+id/editText"
android:layout_alignStart="@+id/editText"
android:hint="password"
android:text=""
android:layout_alignRight="@+id/editText"
android:layout_alignEnd="@+id/editText"
android:layout_centerVertical="true"
android:layout_centerHorizontal="true"/>
<ImageButton
android:layout_width="80dp"
android:layout_height="30dp"
android:id="@+id/imageButtonLogin"
android:layout_marginTop="10dp"
android:background="@drawable/login_button"
android:layout_below="@+id/editText2"
android:layout_alignRight="@+id/editText2"
android:layout_alignEnd="@+id/editText2"
android:layout_gravity="right" />
</LinearLayout>
答案 0 :(得分:5)
您已将宽度和高度设置为wrap_content。在不同屏幕尺寸的不同值文件夹的帮助下,给出静态高度。在不同的文件中,您必须使用不同的值给出相同的维名称。
res/values/dimens.xml(default)
res/values-ldpi/dimens.xml (240x320 and nearer resolution)
res/values-mdpi/dimens.xml (320x480 and nearer resolution)
res/values-hdpi/dimens.xml (480x800, 540x960 and nearer resolution)
res/values-xhdpi/dimens.xml (720x1280 - Samsung S3, Micromax Canvas HD, etc)
res/values-xxhdpi/dimens.xml (1080x1920 - Samsung S4, HTC one, etc)
res/values-large/dimens.xml (480x800)
res/values-large-mdpi/dimens.xml (600x1024)
res/values-sw600dp/dimens.xml (600x1024)
res/values-sw720dp/dimens.xml (800x1280)
res/values-xlarge-xhdpi/dimens.xml (2560x1600 - Nexus 10")
res/values-large-xhdpi/dimens.xml (1200x1920 - Nexus 7"(latest))