[ANDROID] Comment détecter le changement d'orientation
Résolu
stagiaire_1
Messages postés
17
Date d'inscription
Statut
Membre
Dernière intervention
-
scinarf Messages postés 1119 Date d'inscription Statut Membre Dernière intervention -
scinarf Messages postés 1119 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
Je souhaite détecter le changement d'orientation de mon terminal android.
J'utilise le code suivant :
Néanmoins cette méthode n'est jamais appelée même avec un changement d'orientation.
Quelqu'un aurait-il une idée de pourquoi ça ne marche pas?
Merci
Je souhaite détecter le changement d'orientation de mon terminal android.
J'utilise le code suivant :
@Override public void onConfigurationChanged(Configuration newConfig) { super.onConfigurationChanged(newConfig); // Checks the orientation of the screen switch (getResources().getConfiguration().orientation) { case Configuration.ORIENTATION_PORTRAIT: setContentView(R.layout.login); break; case Configuration.ORIENTATION_LANDSCAPE: setContentView(R.layout.login_landscape); break; } }
Néanmoins cette méthode n'est jamais appelée même avec un changement d'orientation.
Quelqu'un aurait-il une idée de pourquoi ça ne marche pas?
Merci
A voir également:
- [ANDROID] Comment détecter le changement d'orientation
- Comment détecter un traceur sur téléphone - Accueil - Confidentialité
- Android recovery - Guide
- Changement dns - Guide
- Changer orientation ecran pc - Guide
- Comment supprimer une application préinstallée sur android - Guide
1 réponse
Que souhaitez vous faire sur le changement d'orientation ?
Vous pouvez récupérer l'orientation avec :
int i = getResources().getConfiguration().orientation ;
if (i == 1) Toast.makeText(this,"Protrait", 0).show();
else if (i == 2) Toast.makeText(this,"Paysage", 0).show();
Après avoir testé la chose, je vous propose la Class OrientationEventListener
de cette manière dans un nouveau fichier .java dans le même package que votre MainActivity:
import android.content.Context;
import android.view.OrientationEventListener;
import android.widget.Toast;
public class onOrientationChanged extends OrientationEventListener
{
private Context context;
public onOrientationChanged(Context c)
{
super(c);
// TODO Auto-generated constructor stub
context = c;
}
public onOrientationChanged(Context context, int rate) {
super(context, rate);
// TODO Auto-generated constructor stub
}
@Override
public void onOrientationChanged(int orientation)
{
// TODO Auto-generated method stub
int i = orientation;
if (i == 0) Toast.makeText(context,"Protrait", 0).show();
else if (i == 2) Toast.makeText(context,"Paysage", 0).show();
else Toast.makeText(context,"Orientation : " + String.valueOf(i), 0).show();
}
}
Et dans votre MainActivity : Ceci
private onOrientationChanged orientation=null;
dans le onCreate()
orientation = new onOrientationChanged(this);
orientation.enable();
la méthode onOrientationChanged est appelée à chaque changement de position, il ne reste plus que a filtrer sur (int) orientation qui donne les degrés en celsius de l'orientation. (ou des valeurs particulières comme 0 pour portrait et 2 pour paysage)
Bonne chance
Vous pouvez récupérer l'orientation avec :
int i = getResources().getConfiguration().orientation ;
if (i == 1) Toast.makeText(this,"Protrait", 0).show();
else if (i == 2) Toast.makeText(this,"Paysage", 0).show();
Après avoir testé la chose, je vous propose la Class OrientationEventListener
de cette manière dans un nouveau fichier .java dans le même package que votre MainActivity:
import android.content.Context;
import android.view.OrientationEventListener;
import android.widget.Toast;
public class onOrientationChanged extends OrientationEventListener
{
private Context context;
public onOrientationChanged(Context c)
{
super(c);
// TODO Auto-generated constructor stub
context = c;
}
public onOrientationChanged(Context context, int rate) {
super(context, rate);
// TODO Auto-generated constructor stub
}
@Override
public void onOrientationChanged(int orientation)
{
// TODO Auto-generated method stub
int i = orientation;
if (i == 0) Toast.makeText(context,"Protrait", 0).show();
else if (i == 2) Toast.makeText(context,"Paysage", 0).show();
else Toast.makeText(context,"Orientation : " + String.valueOf(i), 0).show();
}
}
Et dans votre MainActivity : Ceci
private onOrientationChanged orientation=null;
dans le onCreate()
orientation = new onOrientationChanged(this);
orientation.enable();
la méthode onOrientationChanged est appelée à chaque changement de position, il ne reste plus que a filtrer sur (int) orientation qui donne les degrés en celsius de l'orientation. (ou des valeurs particulières comme 0 pour portrait et 2 pour paysage)
Bonne chance