IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Composants graphiques Android Discussion :

Canvas plein écran - gérer les résolutions


Sujet :

Composants graphiques Android

  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    204
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 204
    Points : 159
    Points
    159
    Par défaut Canvas plein écran - gérer les résolutions
    Bonjour,

    J'ai créé un mini-jeu dans mon application mais j'ai du mal à gérer les différentes résolutions des appareils.

    Quelle est la meilleure méthodologie à mettre en oeuvre ?

    J'ai essayé d'utiliser un coefficient sur X et sur Y afin de tout mettre au bon format mais cela n'est pas parfait, principalement quand les coeff X et Y ne sont pas les mêmes...

    Comment feriez-vous ?

    Merci.

  2. #2
    Membre habitué
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    204
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 204
    Points : 159
    Points
    159
    Par défaut
    J'ai trouvé une première piste en récupérant la densité :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    final float scale = getResources().getDisplayMetrics().density;
    Mais il va falloir obligatoirement définir une taille (hauteur ou largeur) maximale pour conserver un bon ratio.

    Cela ne devrait pas poser trop de problème pour mon mini-jeu mais j'ai du mal à comprendre comment font les autres jeux vraiment fullscreen.
    Ils définissent des valeurs pour chaque taille (small, large, xlarge..) et chaque densité ?

  3. #3
    Expert éminent

    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Février 2007
    Messages
    4 253
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Février 2007
    Messages : 4 253
    Points : 7 618
    Points
    7 618
    Billets dans le blog
    3
    Par défaut
    Je ne comprends pas bien le problème....

    Il y a trois choix possible pour un canvas plein écran:
    • Tout est géré en "pixels", dans ce cas, pas besoin de gérer quoique ce soit côté "densité", mais risque d'avoir des éléments graphiques "tout petits" sur certains device et "enormes" sur d'autres.
    • Tout est géré en "dp" (la transformation dp/pixel est simple avec la densité). Les éléments graphiques sont alors à proposer comme ressources ldpi, mdpi, hdpi, xhdpi, xxhdpi (et xxxhdpi). Bien utiliser la densité constructeur, et pas la véritable densité de l'écran pour la transformation dp/pixel.
    • Un mix des deux. Tout est géré en "pixels" mais avec un facteur d'échelle 2/3 (ldpi), 1 (mdpi), 3/2 (hdpi), 2 (xhdpi), 3 (xxhdpi) ou 4 (xxxhdpi). C'est le meilleur des deux mondes. Mais plus compliqué à gérer.
    N'oubliez pas de cliquer sur mais aussi sur si un commentaire vous a été utile !
    Et surtout

  4. #4
    Membre habitué
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    204
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 204
    Points : 159
    Points
    159
    Par défaut
    Salut,

    Le problème est le suivant :
    Si tout est géré en pixels, cela pose un problème sur les animations, exemple : une balle en mouvement sera plus lente sur des device plus grands

    Je vais donc utiliser un mix des deux.

  5. #5
    Expert éminent

    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Février 2007
    Messages
    4 253
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Février 2007
    Messages : 4 253
    Points : 7 618
    Points
    7 618
    Billets dans le blog
    3
    Par défaut
    non... sa vitesse exprimée en pixels / s sera la même sur les deux terminaux.
    et elle traversera un terrain de taille N (exprimée en pixel) dans le même temps !

    Personnellement, je ne travaille qu'en "dp". Cela évite de se prendre la tête. Mais je concois que certaines applications "full-screen" (comme les jeux) aimeraient bien utiliser tous les pixels (et en tant qu'utilisateur cela m'énerverait d'avoir des barres noir autour du jeu).

    Par contre il faut abandonner l'idée de dire que le terrain c'est l'écran, tous les écrans n'ont pas le même ratio hauteur/largeur.
    N'oubliez pas de cliquer sur mais aussi sur si un commentaire vous a été utile !
    Et surtout

Discussions similaires

  1. canvas plein écran avec Tkinter
    Par Captain'Flam dans le forum Général Python
    Réponses: 5
    Dernier message: 15/06/2015, 18h06
  2. Gérer un affichage plein écran avec une résolution précise
    Par DelphiCool dans le forum Codes sources à télécharger
    Réponses: 0
    Dernier message: 03/02/2013, 11h23
  3. Programmer pour toutes les résolutions d'écran
    Par marcello2 dans le forum VB 6 et antérieur
    Réponses: 3
    Dernier message: 20/02/2007, 14h42
  4. Lister toutes les résolutions d'écran
    Par franckgar dans le forum Delphi
    Réponses: 1
    Dernier message: 08/12/2006, 11h22
  5. Gérer la résolution d'écran en CSS/PHP
    Par guidav dans le forum Mise en page CSS
    Réponses: 3
    Dernier message: 22/03/2006, 16h50

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo