Dans votre classe d'activité utiliser la méthode ci-dessous:
@Override
public void onConfigurationChanged(Configuration newConfig) {
super.onConfigurationChanged(newConfig);
// Checks the orientation of the screen
if (newConfig.orientation == Configuration.ORIENTATION_LANDSCAPE) {
setlogo();// Your Method
Log.d("Daiya", "ORIENTATION_LANDSCAPE");
} else if (newConfig.orientation == Configuration.ORIENTATION_PORTRAIT) {
setlogoForLandScape();// Your Method
Log.d("Daiya", "ORIENTATION_PORTRAIT");
}
}
ensuite de déclarer que votre activité gère un changement de configuration, modifier l'élément approprié dans votre fichier manifest pour inclure l'attribut android:configChanges
avec une valeur qui représente la configuration que vous voulez gérer. Les valeurs possibles sont répertoriées dans la documentation de l'attribut android:configChanges
(les valeurs les plus couramment utilisées sont «orientation» pour empêcher les redémarrages lorsque l'orientation de l'écran change et «keyboardHidden» pour empêcher les redémarrages lorsque la disponibilité du clavier change). Vous pouvez déclarer plusieurs valeurs de configuration dans l'attribut en les séparant avec un tube | personnage.
<activity android:name=".MyActivity"
android:configChanges="orientation|keyboardHidden"
android:label="@string/app_name">
C'est tout !!
Ceci fournit seulement deux valeurs ORIENTATION_PORTRAIT et ORIENTATION_LANDSCAPE. Existe-t-il un moyen d'obtenir toutes les quatre valeurs de ActivityInfo? (C'est aussi LANDSCAPE_REVERSE et PORTRAIT_REVERSE) – HRJ
@HRJ vous pouvez utiliser getWindowManager(). GetDefaultDisplay().getRotation() – MKJParekh
getWindowManager(). getDefaultDisplay(). getRotation() retourne la rotation en référence à l'orientation "naturelle" de l'affichage, c'est-à-dire qu'elle retourne Surface.ROTATION_0 en mode paysage, alors que pour un téléphone portable la même valeur pour le portrait. –