Je souhaite que mon application fonctionne uniquement en mode paysage, mais je ne peux pas la faire fonctionner. J'ai donné screenOrientation = "landscape"
même si la première page sera en mode paysage et les autres activités seront en mode portrait.
FICHIER 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>
CLASSE Java
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);
}
};
}
Gardez cette partie du manifeste telle qu'elle est déjà. Par exemple, considérez l'activité IntroHome.
<activity Android:name=".IntroHome"
Android:label="@string/app_name"
Android:screenOrientation="landscape"
>
</activity>
Et pour l'activité XML, assurez-vous que vous disposez de la disposition d'activité IntroHome XML niquement dans le dossier layout-land. De cette façon, l'activité/les activités que vous avez ne montreront que la version paysage du XML que vous avez défini.
Vous pouvez utiliser le code suivant selon l'exigence:
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
et setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
vous devez mettre ce code avant setContentView(R.layout.layout_name.xml)
.
Vous pouvez également essayer de définir l'orientation à partir de votre code
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
Consultez ce lien pour plus d'informations
Essayez d'ajouter:
Android:configChanges="orientation|keyboardHidden"
Faites-moi savoir si cela aide !! Juste une supposition !!