2011-09-15 1 views
2

Dans mon application, j'ai une image en arrière-plan. Lorsque l'application est en mode portrait, c'est bien. Mais quand il est en mode paysage, l'image tourne et est étirée.Ne pas modifier l'arrière-plan lors du changement d'orientation

Je sais que nous pouvons utiliser le dossier layout-land, mais avec cette solution, toutes mes mises en page seront en double juste pour une image (pas très logique ..).

Existe-t-il une autre solution? PS: Mon image est juste une texture de carbone donc, une solution pour l'empêcher de tourner avec l'orientation serait ok.

EDIT:

hotveryspicy, votre solution fonctionne mais, il y a des activités qui ont la propriété android: configChanges = "orientation" (dans le Manifest), et il ne fonctionne pas pour eux. Comment résoudre ceci?

En fait, j'utilise cette propriété pour enregistrer l'état lorsque l'orientation change mais ce n'est pas la bonne façon de le faire. Je dois utiliser onSaveInstanceState pour cela.

En attendant, existe-t-il une solution qui me permet de garder cette mauvaise solution?

Répondre

0

Je doute qu'il serait possible de faire ce que vous aviez décrit. La seule solution possible (layout-land) que vous aviez déjà exclue. C'est la seule façon de s'y prendre, je suppose.

2

ya, première orientation de l'enregistrement onCreate()

Display mDisplay= activity.getWindowManager().getDefaultDisplay(); 
int width= mDisplay.getWidth(); 
int height= mDisplay.getHeight(); 

if(width>height) 
{ 
//Landscape 
//set landscape compatible image 
} 
else 
{ 
//Portrait 
//set portrait compatible image 
} 
+1

Cela ne fonctionne pas pour les activités avec la propriété android: configChanges = "orientation" – HerrM

+0

se référer à ce http://stackoverflow.com/questions/7295804/is-that-possible-to-check-was-oncreate-called- parce que-d'-orientation-changement/7397085 # 7397085 –

1

Ne serait-il faire l'affaire si vous avez placé une autre version de l'image d'arrière-plan dans drawable-land dossier res? De cette façon, vous pouvez toujours utiliser les mêmes fichiers de mise en page et se référer à la @drawable/background en eux.

Questions connexes