我有两项活动,根据SD
卡的存在而打开。一项活动有三个Buttons
和一个TextView
,另一个活动有一个ImageView
,一个按钮和缩放控件。当我改变方向时,按钮在水平方向上被扰乱。如何解决这个问题?
我的'SD'卡布局
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="#1E1E1E"
android:orientation="vertical" >
<Button
android:id="@+id/button_print"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_centerHorizontal="true"
android:layout_marginBottom="44dp"
android:background="@drawable/my_button"
android:text="@string/print" />
<TextView
android:id="@+id/text_SDmissing"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
android:layout_centerHorizontal="true"
android:layout_marginTop="80dp"
android:text="@string/SDmissing"
android:textSize="20dp" />
<Button
android:id="@+id/button_camera"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_above="@+id/button_print"
android:layout_centerHorizontal="true"
android:layout_marginBottom="58dp"
android:background="@drawable/my_button"
android:text="@string/camera" />
<Button
android:id="@+id/button_insert"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/text_SDmissing"
android:layout_centerHorizontal="true"
android:layout_marginTop="40dp"
android:background="@drawable/my_button"
android:text="@string/insert" />
</RelativeLayout>
答案 0 :(得分:13)
您必须为纵向和横向模式创建单独的XML文件,并将其放在不同的目录中。设备将自动选择正确的设备。您可以使用以下目录结构
res/layout/my_layout.xml
res/layout-land/layout.xml
如需进一步参考,您可以查看: http://developer.android.com/guide/practices/screens_support.html
答案 1 :(得分:8)
您可以在项目中创建名为“layout-land”的文件夹(在“res”目录中)。在那里,您可以从普通的“布局”文件夹中复制所有xml样式,并将它们重新设置为横向模式。 Android会自动将这些布局用于横向模式。
您的项目将如下所示: