0

我是安卓新手。我创建了一个 main.xml 文件,例如

 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
     android:layout_width="fill_parent"
     android:layout_height="fill_parent"
     android:background="@android:color/white"
     android:paddingTop="5dp"
     android:orientation="vertical" >

    <ImageView
        android:id="@+id/imageView1" 
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center"       
        android:layout_marginBottom="10dp"
        android:src="@drawable/mazarslogo" />

    <ImageView
        android:id="@+id/imageView2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center"
        android:src="@drawable/ic_launcher" />

    <RelativeLayout 
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:orientation="vertical"
        xmlns:android="http://schemas.android.com/apk/res/android" >

        ....

    </RelativeLayout>

 </LinearLayout>

该文件位于我的 res/layout/main.xml 文件夹中。现在我创建一个名为 layout-land 的新文件夹,并在其中放入一个文件 main.xml。即res/layout-land/main.xml,并在里面放入如下代码

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical" >

    <ImageView
        android:id="@+id/imageView1" 
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center"       
        android:layout_marginBottom="10dp"
        android:src="@drawable/mazarslogo" />

    <ImageView
        android:id="@+id/imageView2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center"
        android:src="@drawable/ic_launcher" />

</LinearLayout>

这是我的课

public class MainActivity extends Activity {

    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);

        //---the two buttons are wired to the same event handler---
        Button btn_login = (Button)findViewById(R.id.btn_login );
        btn_login.setOnClickListener(btnListener);

         .....

    } //end of onCreate()

} //end of class MainActivity

但是现在当我运行项目时,项目以纵向模式打开,但是当我按 ctrl+F11 更改模拟器的方向时,我得到了错误。

在此处输入图像描述

这是人像模式图片

在此处输入图像描述

为什么我在横向模式下收到此错误?我做错了什么?

谢谢

编辑 - - - - - - - - - - - - - - - - - - - - - - - - - ------------------

这是我的工作 res/layout-land/main.xml 文件

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout 
xmlns:android="http://schemas.android.com/apk/res/android"
android:background="@color/background"
android:layout_height="fill_parent"
android:layout_width="fill_parent"
android:padding="1dip"
android:orientation="horizontal" > >

<LinearLayout
    android:orientation="vertical"
    android:layout_height="wrap_content"
    android:layout_width="fill_parent"
    android:layout_gravity="center"
    android:paddingLeft="20dip"
    android:paddingRight="20dip" >

    <ImageView
        android:id="@+id/imageView1" 
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center"       
        android:layout_marginBottom="10dp"
        android:src="@drawable/mazarslogo" />

    <ImageView
        android:id="@+id/imageView2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center"
        android:layout_marginBottom="10dp"
        android:src="@drawable/ic_launcher" />

    <TableLayout
        android:layout_height="wrap_content"
        android:layout_width="wrap_content"
        android:layout_gravity="center"
        android:stretchColumns="*" >

        <TableRow>

            <Button
                android:id="@+id/btn_login"                 
                android:text="@string/login"                
                android:textSize="12sp" 
                android:textStyle="bold" />

            <Button
                android:id="@+id/btn_aboutUs"                           
                android:text="@string/aboutUs"                  
                android:textSize="12sp" 
                android:textStyle="bold" />

        </TableRow>

        <TableRow>
             <Button
                android:id="@+id/btn_contactUs"                 
                android:text="@string/contactUs"            
                android:textSize="12sp" 
                android:textStyle="bold" />

            <Button
                android:id="@+id/btn_exit"                  
                android:text="@string/exit"         
                android:textSize="12sp" 
                android:textStyle="bold" />
        </TableRow>
    </TableLayout>        
</LinearLayout>  

4

1 回答 1

2

首先要记住,两个xml都应该具有相同的数据,无论是imageview,button还是layout,对于potrait和lancaspe布局的布局,id也应该相同,并且您需要在activtiy的menifest中添加以下内容

android:configChanges="keyboardHidden|orientation"
于 2012-06-28T09:46:33.393 回答