Jump to content

Taille des drawable


Guest hardrocky

Recommended Posts

Guest hardrocky

Bonjour à tous,

Petit question, qui pourra paraitre idiote pour certains ^^

Pourquoi, au lieu de mettre les mêmes images en différentes tailles dans drawable-hdpi, drawable-mdpi, ldpi... on ne se contenterait pas de mettre la plus grande dans drawable et de virer les autres dossiers ? Ca ferait diminuer la taille de l'application.

Merci de m'éclairer :)

Link to comment
Share on other sites

Tu peux le faire. Dans ce cas, Android va s'adapter, et va upscaler/downscaler tes images en fonction de la densité réelle de l'appareil sur lequel tourne ton appli (les ressources dans drawable sont considérées comme étant de densité mdpi)

Ce qui au final pourra donner des résultats pas très heureux (pixelisation par ex.)

Link to comment
Share on other sites

Guest hardrocky

Merci pour les infos :) Donc si je mets toujours des images de grande résolution, il y a peu de chance d'obtenir un effet de pixelisation ?

Tiens d'ailleurs question annexe, comment connaitre à l'avance les résolutions que je dois appliquer à mes images ? Par exemple si j'ai un ImageButton de 100dp * 100dp, lors de la création de l'image, elle doit faire quelle taille en pixels ?

Link to comment
Share on other sites

Non, tu auras toujours un risque de pixelisation, car les ressources dans drawable sont considérées comme étant de densité mdpi, et sur un device hdpi ou xhdpi, Android devra upscaler tes images pour les afficher...

Et pour ce qui est de la taille, si tu spécifies une taille dans ton layout en dp (chose à éviter d'ailleurs, l'utilisation de dimensions fixes ne permet pas d'avoir des ihms qui s'adaptent ensuite aux differentes tailles d'écran), cette taille (en dp) ne correspond pas directement à une taille en pixel (dp = device independant pixel), la taille réelle en pixel sera fonction ensuite de la densité de l'affichage de l'appareil

Link to comment
Share on other sites

Guest hardrocky

Et pour ce qui est de la taille, si tu spécifies une taille dans ton layout en dp (chose à éviter d'ailleurs, l'utilisation de dimensions fixes ne permet pas d'avoir des ihms qui s'adaptent ensuite aux differentes tailles d'écran)

Ah bon ? Avec quelle unité alors ?

Par exemple sur ce sreen (mon appli) le bouton du bas fait 150dp de côté.

Link to comment
Share on other sites

Ce que je voulais dire, c'est qu'il n'est pas recommandé de spécifier des tailles fixes pour les composants d'une vue, il est préférable d'utiliser des valeurs telles que "match_parent" ou "wrap_content", pour faire en sorte que le composant s'adapte en fonction de son contenu/ de son parent/...

Ceci dit, si tu veux absolument spécifier une taille fixe, alors tu peux utiliser les dp: et si ton composant se base sur une image, il faut que cette image ait une taille en rapport; et là, il y a une conversion à faire entre les dp de l'écran et les pixels de l'image, en fonction de la densité de l'écran. Ca passe par un facteur multiplicatif, qui est de 1 pour les drawable en mdpi, de 1.5 pour hdpi, de 2 pour xhdpi et de 0.75 pour ldpi; ce qui veut dire que si ton image doit s'afficher dans un carré de 150dp à l'écran, elle doit faire 150 pixels pour la densité mdpi, 225 pour hdpi, etc...

Link to comment
Share on other sites

Guest hardrocky

Ah voilà, c'est ces ratios que je voulais, merci beaucoup :)

Et oui je suis d'accord sur le début, mais dans le cas d'un bouton (comme sur mon screen), je n'ai pas le choix je dois définir un taille fixe.

Edited by hardrocky
Link to comment
Share on other sites

Guest hardrocky

Ah tiens une question qui me taraude. Si je mets des xml (pour le background d'un bouton) dans /drawable/, sera-il "interprété" sur un device de densité ldpi ?

Link to comment
Share on other sites

Un drawable au format XML ne doit être présent que dans le répertoire /drawable/ . Ensuite, Android utilisera les bitmaps référencés dans ce XML en fonction de la densité

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...