アプリをランドスケープモードでのみ動作させたいが、動作させられない。私は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>
Java CLASS
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);
}
};
}
マニフェストのこの部分をそのままにしておきます。たとえば、IntroHomeアクティビティを考えます。
<activity Android:name=".IntroHome"
Android:label="@string/app_name"
Android:screenOrientation="landscape"
>
</activity>
アクティビティXMLの場合、IntroHomeアクティビティレイアウトXMLをonlyがlayout-landフォルダにあることを確認してください。このように、アクティビティは、定義したXMLのランドスケープバージョンのみを表示します。
要件ごとに次のコードを使用できます。
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
およびsetRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
これらのコードはsetContentView(R.layout.layout_name.xml)
の前に配置する必要があります。
コードから方向を設定することもできます
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
詳細については、このリンクを確認してください
追加してみてください:
Android:configChanges="orientation|keyboardHidden"
それが役立つかどうか教えてください!!ただの推測!!