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のいずれかの同じデータである必要があることを覚えておいてください。そこにあるIDは、potraitとlancaspeレイアウトの両方のレイアウトでも同じである必要があり、アクティビティのmenifestに次のものを追加する必要があります。

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