我是否需要使用水平布局(android studio 1.5.1)?

我是否需要使用水平布局(android studio 1.5.1)?,android,android-layout,Android,Android Layout,我是Android世界的新手,我对水平位置的屏幕有点问题。我的android studio版本是1.5.1。 我已经完成了垂直布局,但在水平位置转动手机时出现问题;所有的图像、按钮都在移动,视频视图也消失了。 我的布局是这样的: <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="htt

我是Android世界的新手,我对水平位置的屏幕有点问题。我的android studio版本是1.5.1。 我已经完成了垂直布局,但在水平位置转动手机时出现问题;所有的图像、按钮都在移动,视频视图也消失了。 我的布局是这样的:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:fitsSystemWindows="true"
android:orientation="vertical"
tools:context="com.example.ubuntunyx.apptest3.MainActivity"
android:background="#a987b7"
android:weightSum="1">

<android.support.v7.widget.Toolbar
android:id="@+id/toolbar"
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize"
android:background="#4c335a"
app:popupTheme="@style/AppTheme.PopupOverlay" />

<RelativeLayout
android:id="@+id/LytRelVideoResize"
android:layout_width="match_parent"
android:layout_height="50dp"
android:layout_weight="0.94">

<Button
android:id="@+id/btnResize"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/btnResize"
android:layout_gravity="left"
android:onClick="btnResize_click"
android:background="@drawable/btn_redondo"
android:layout_marginBottom="39dp"
android:textColor="#ffffff"
android:layout_alignBottom="@+id/imgResize"
android:layout_toLeftOf="@+id/imgResize"
android:layout_toStartOf="@+id/imgResize"
android:layout_marginRight="41dp"
android:layout_marginEnd="41dp" />

<ImageView
android:id="@+id/imgResize"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@drawable/ocaso"
android:layout_below="@+id/barResize"
android:layout_alignParentRight="true"
android:layout_alignParentEnd="true"
android:layout_marginRight="49dp"
android:layout_marginEnd="49dp" />

<VideoView
android:id="@+id/videoPiramides"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:layout_below="@+id/imgResize"
android:layout_marginTop="41dp"
android:layout_alignRight="@+id/barResize"
android:layout_alignEnd="@+id/barResize"
android:layout_alignParentBottom="true"
android:layout_alignLeft="@+id/btnResize"
android:layout_alignStart="@+id/btnResize" />
</RelativeLayout>

<ImageView
android:id="@+id/imgDragDrop"
android:layout_width="118dp"
android:layout_height="100dp"
android:src="@drawable/buho"
android:layout_marginLeft="43dp"
android:layout_marginStart="43dp"
android:layout_centerVertical="true"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true" />

<Button
android:id="@+id/btnExit"
style="?android:attr/buttonStyleSmall"
android:layout_width="81dp"
android:layout_height="wrap_content"
android:text="@string/btnExit"
android:onClick="btnExit_click"
android:textColor="#ffffff"
android:background="#124a68"
android:layout_gravity="right"
android:layout_centerVertical="true"
android:layout_alignParentRight="true"
android:layout_alignParentEnd="true" />
</LinearLayout>


但这只会让我更加困惑。

解决这个问题的最好办法是为景观模式创建设计。您应该在res文件夹中创建名为“layout land”的新文件夹。在“新建”文件夹中,使用相同的名称创建新布局文件,但使用“横向设计”模式。Android操作系统将知道何时使用横向模式,何时使用纵向模式。

这里有几个选项:
1.重新排列布局子视图,使其在横向和纵向模式下都看起来良好。这需要反复试验,并不总是可能的。

2.使您的活动保持特定布局,而不考虑设备方向的更改。这可以通过以下方式在应用程序清单文件中完成:

<activity android:name=".MyActivity"
            android:screenOrientation="portrait"
            android:configChanges="orientation|keyboardHidden"/>


3.最佳方法:为横向和纵向创建单独的布局文件。在android studio中,这很容易。假设您有一个名为MyActivity的活动,那么布局文件将类似于:
my_activity.xml
(对于普通、纵向模式)和
my_activity\u land.xml
对于横向模式。

您只需要构建另一个布局横向 只需按照下图操作即可:

然后按照你的意愿设计新的布局

或 如果你不需要这个场景(强制应用程序只设置一个方向)

并将这段代码添加到应用程序标记中

android:screenOrientation="portrait"
android:screenOrientation="landscape"

布局中的一个问题是,您在对齐中引用了一个
“@+id/barResize”
,但您没有一个具有此id的视图,这是因为我删除了seekbar,但忘了删除它。
android:screenOrientation="portrait"
android:screenOrientation="landscape"