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

Android Discussion :

Drawable et dpi


Sujet :

Android

  1. #1
    Expert éminent
    Avatar de Paul TOTH
    Homme Profil pro
    Freelance
    Inscrit en
    Novembre 2002
    Messages
    8 964
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Freelance
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2002
    Messages : 8 964
    Par défaut Drawable et dpi
    Bonjour,

    Quelqu'un peut-il m'expliquer clairement quelque chose que je ne comprend pas.

    Sur un projet Android, j'utilise un Tileset, donc un PNG reprenant une série de sprites, ce PNG est chargé par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    FSprites = ((BitmapDrawable)context.getResources().getDrawable(R.drawable.font8x8)).getBitmap();
    j'utilise un bitmap interne de taille fixe créé comme ceci
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    FImage  = Bitmap.createBitmap(320, 200, Config.ARGB_8888);
    j'associe un Canvas à cette image pour dessiner mes sprites 8x8, puis je dessine l'image sur le canvas de la vue.

    Et bien pour 2 appareils j'ai un qui fonctionne parfaitement, l'autre se "trompe" dans la taille de sprites. J'ai bien compris que c'était un pb de dpi mais je ne comprend pas comment ça intervient.

    Si je place le PNG dans res/drawable, c'est ok sur un seul appareil, si je le place dans res/drawable-ldpi c'est ok sur l'autre (mais pas le premier)

    En fait, pour résoudre le problème j'ai placé le même PNG dans le répertoire "drawable" et dans "drawable-ldpi"...et là je ne comprend pas comment le même bitmap présent deux fois peut répondre mieux qu'un seul exemplaire ?!

    j'ai aussi testé en plaçant l'image dans res/raw ça n'a pas mieux fonctionné.

    Merci
    Developpez.com: Mes articles, forum FlashPascal
    Entreprise: Execute SARL
    Le Store Excute Store

  2. #2
    Expert éminent
    Avatar de Paul TOTH
    Homme Profil pro
    Freelance
    Inscrit en
    Novembre 2002
    Messages
    8 964
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Freelance
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2002
    Messages : 8 964
    Par défaut
    réponse: il faut placer l'image dans drawable-nodpi faute de quoi elle est adaptée au dpi de l'écran lors du chargement
    Developpez.com: Mes articles, forum FlashPascal
    Entreprise: Execute SARL
    Le Store Excute Store

  3. #3
    Membre éclairé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Janvier 2007
    Messages
    697
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Janvier 2007
    Messages : 697
    Par défaut
    Je ne connaissais pas le nodpi.
    Actuellement, si je peux qu'une image prennent le même pourcentage de la taille de l'écran (à nombre de pixel équivalent), je suis obligé de mettre les même images fans drawable-small, drawable-large... Est-ce qu'il existe un équivalent pour la taille des écrans ?

  4. #4
    Expert éminent
    Avatar de Paul TOTH
    Homme Profil pro
    Freelance
    Inscrit en
    Novembre 2002
    Messages
    8 964
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Freelance
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2002
    Messages : 8 964
    Par défaut
    Citation Envoyé par atha2 Voir le message
    Je ne connaissais pas le nodpi.
    Actuellement, si je peux qu'une image prennent le même pourcentage de la taille de l'écran (à nombre de pixel équivalent), je suis obligé de mettre les même images fans drawable-small, drawable-large... Est-ce qu'il existe un équivalent pour la taille des écrans ?
    euh ben je dirais que c'est le comportement normal de Android, en plaçant une image d'une taille donnée dans un des drawable-* elle est mise à l'échelle automatiquement pour les autres résolutions. non ?
    Developpez.com: Mes articles, forum FlashPascal
    Entreprise: Execute SARL
    Le Store Excute Store

  5. #5
    Membre éclairé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Janvier 2007
    Messages
    697
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Janvier 2007
    Messages : 697
    Par défaut
    drawable-*
    A quoi fait tu référence par * ? drawable-dpi ou drawable-screensize ?

    Le problème c'est que pour une résolution d'écran donnée, j'ai besoin d'avoir (pour hdpi par exemple) drawable-small-hdpi, drawable-hdpi, drawable-large-hdpi... Et dans chaque dossier j'ai exactement les mêmes images. Du coup, je vais avoir un apk beaucoup plus lourd.
    C'est la seule solution que j'ai trouvée pour avoir exactement la même interface sur (presque) tous les téléphones/tablettes
    C'est pour ça que je me demandais s'il existait un drawable-nolarge mais en fin de compte j'ai peut-être mal compris ce que faisait le drawable-nodpi

  6. #6
    Expert éminent
    Avatar de Paul TOTH
    Homme Profil pro
    Freelance
    Inscrit en
    Novembre 2002
    Messages
    8 964
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Freelance
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2002
    Messages : 8 964
    Par défaut
    Citation Envoyé par atha2 Voir le message
    A quoi fait tu référence par * ? drawable-dpi ou drawable-screensize ?

    Le problème c'est que pour une résolution d'écran donnée, j'ai besoin d'avoir (pour hdpi par exemple) drawable-small-hdpi, drawable-hdpi, drawable-large-hdpi... Et dans chaque dossier j'ai exactement les mêmes images. Du coup, je vais avoir un apk beaucoup plus lourd.
    C'est la seule solution que j'ai trouvée pour avoir exactement la même interface sur (presque) tous les téléphones/tablettes
    C'est pour ça que je me demandais s'il existait un drawable-nolarge mais en fin de compte j'ai peut-être mal compris ce que faisait le drawable-nodpi
    Pour ce que j'ai compris, le principe des dpi c'est de dire, l'image qui fait 160x80 est prévue pour du mdpi (par exemple), quand elle est chargée sur une tablette avec un autre dpi elle est automatiquement redimensionnées avec un facteur d'échelle prédéterminé. Pour éviter ça, on peut fournir l'image dans les différents dpi, avec différentes résolutions donc.

    Si tu places la même image dans chaque répertoire, ça revient à ne pas redimensionné l'image puisqu'elle est identique quel que soit le dpi. C'est ce dont j'avais besoin car je travaille en pixels. Et en fait, c'est à ça que sert le répertoire drawable-nodpi, c'est une image qui ne change pas en fonction des dpi.

    Dans mon cas, je travaille en résolution 320x200 (dans un bitmap) qui est dessiner sur toute la surface de l'écran sans antialiasing avec un effet de pixelisation délibéré (old school game)
    Developpez.com: Mes articles, forum FlashPascal
    Entreprise: Execute SARL
    Le Store Excute Store

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Problème "drawable" dpi et tailles
    Par Argol dans le forum Android
    Réponses: 4
    Dernier message: 23/08/2011, 13h27
  2. [vb6] Récupérer le DPI d'un .jpg
    Par mauris dans le forum VB 6 et antérieur
    Réponses: 3
    Dernier message: 09/07/2006, 15h22
  3. X11 Drawable ou Display vers Window
    Par twins dans le forum Applications et environnements graphiques
    Réponses: 1
    Dernier message: 08/07/2006, 17h22
  4. [ImageMagick] Changer le dpi d'une image
    Par gIch dans le forum Bibliothèques et frameworks
    Réponses: 2
    Dernier message: 20/02/2006, 11h42
  5. Une alternative à XCloseDisplay(Display *dpy) ?
    Par Michaël dans le forum Applications et environnements graphiques
    Réponses: 6
    Dernier message: 10/02/2005, 09h32

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