51

アプリをランドスケープ モードでのみ動作させたいのですが、動作させることができません。screenOrientation = "landscape"最初のページは横向きモードになり、他のアクティビティは縦向きになりますが、私は与えました。

XML ファイル

<application android:icon="@drawable/icon" android:label="@string/app_name">
    <activity android:name=".Main"
              android:label="@string/app_name"
              android:screenOrientation="landscape" android:theme="@android:style/Theme.NoTitleBar.Fullscreen">
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />
            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>     

    </activity>

    <activity android:name=".IntroHome"
              android:label="@string/app_name"
              android:screenOrientation="landscape">
    </activity>

    <activity android:name=".ObjectivesPage"
              android:label="@string/app_name"
              android:screenOrientation="landscape" >
    </activity>

    <activity android:name=".MenuPage"
              android:label="@string/app_name"
              android:screenOrientation="landscape" >
    </activity>
</application>

ジャバクラス

public class ObjectivesPage extends Activity{

    ImageButton  imgButton;
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.objectivespage);
        setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);

        imgButton = (ImageButton)findViewById(R.id.buttonCloseNGo);
        imgButton.setOnClickListener(onClickCloseNGo);
    }

    private OnClickListener onClickCloseNGo = new OnClickListener(){

        public void onClick(View v) {
            Intent intent = new Intent(ObjectivesPage.this,MenuPage.class);
            startActivity(intent);
        }
    };
}
4

5 に答える 5

84

マニフェストのこの部分は、そのままにしておきます。たとえば、IntroHomeアクティビティについて考えてみます。

<activity android:name=".IntroHome"
           android:label="@string/app_name"
           android:screenOrientation="landscape"  
           >
</activity>

また、アクティビティXMLの場合、IntroHomeアクティビティレイアウトXMLがlayout-landフォルダーにのみ存在することを確認してください。このように、あなたが持っている活動/活動はあなたが定義したXMLのランドスケープバージョンのみを表示します。

于 2010-12-30T09:56:45.697 に答える
3

コードから向きを設定することもできます

setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);

詳細については、このリンクを確認してください

http://www.devx.com/wireless/Article/40792/0/page/5

于 2010-12-30T09:47:09.683 に答える
3

要件に従って次のコードを使用できます。

setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);

これらのコードを の前に置く必要がありますsetContentView(R.layout.layout_name.xml)

于 2010-12-30T11:42:46.740 に答える
1

追加してみてください:

android:configChanges="orientation|keyboardHidden"

それが役立つかどうか教えてください!! ただの推測です!

于 2010-12-30T09:45:32.740 に答える