Aller au contenu

[Problème] Changement de taille selon l'orientation


MrFlo

Recommended Posts

Bonjour !

Voilà mon soucis : je suis en plein apprentissage du Java pour Android, et j'ai réalisé un petit morpion, avec la contrainte de pouvoir choisir le nombre de case de mon plateau, et que la UI (taille du plateau et des cases) se calcule dynamiquement. Je fais tout en pur Java, pas de XML.

Problème : en mode "portrait", l'affichage se fait correctement, mais en mode "paysage" le plateau est cropé en bas ! pourtant la taille récupérée est bien la même dans les deux cas. Je code sous Eclipse, et j'ai testé aussi bien sur un émulateur que sur une tablette, et le problème est le même.

ESt-ce que qqun a une idée de pourquoi ?

Au besoin, je fournis du code.

Lien vers le commentaire
Partager sur d’autres sites

La taille récupérée ne devrait pas être la même selon l'orientation, c'est peut être là ton problème.

Un extrait de ton code aiderait effectivement à comprendre...

Lien vers le commentaire
Partager sur d’autres sites

Salut,

alors j'utilise les méthodes ci-dessous :

   private static int getWidth(Context mContext){
    int width=0;
    WindowManager wm = (WindowManager) mContext.getSystemService(Context.WINDOW_SERVICE);
    Display display = wm.getDefaultDisplay();
    if(Build.VERSION.SDK_INT>=Build.VERSION_CODES.HONEYCOMB_MR2){				  
	    Point size = new Point();
	    display.getSize(size);   // ERROR HERE - BEWARE OF API CHECK
	    width = size.x;
	    Log.i("GetWidth", "méthode 1");
    }
    else{
	    width = display.getWidth();  // deprecated
	    Log.i("GetWidth", "méthode 2");
    }
    return width;
   }

   private static int getHeight(Context mContext){
    int height=0;
    WindowManager wm = (WindowManager) mContext.getSystemService(Context.WINDOW_SERVICE);
    Display display = wm.getDefaultDisplay();
    if(Build.VERSION.SDK_INT>=Build.VERSION_CODES.HONEYCOMB_MR2){			  
	    Point size = new Point();
	    display.getSize(size);  // ERROR HERE - BEWARE OF API CHECK
	    height = size.y;
    }else{		 
	    height = display.getHeight();  // deprecated
    }
    return height;	 
   }

j'ai vérifié dans la première fonction, et le programme passe bien dans le premier Log.i. Cela dit, la seconde méthode (display.getWidth()) donne le même résultat.

une idée ??

Lien vers le commentaire
Partager sur d’autres sites

Archivé

Ce sujet est désormais archivé et ne peut plus recevoir de nouvelles réponses.

×
×
  • Créer...