5 votes

Comment utiliser 9 images de patch dans Android pour différentes densités (comme mdpi, ldpi, hdpi) ?

Je suis en train de créer une application Android dans laquelle je veux un support pour plusieurs écrans, pour lesquels j'ai utilisé 9 images de patch.

Mais ma question est la suivante : l'utilisation d'images de 9 patchs sera-t-elle suffisante pour deux dispositifs de densité différente ou dois-je créer deux images de 9 patchs différentes pour des densités variables (comme mdpi, ldpi, hdpi) ?

Merci d'avance

17voto

Ricardo Amaral Points 4362

Je me suis récemment retrouvée dans la même situation, alors permettez-moi d'intervenir et de développer ce qui a déjà été dit...

Oui, les images de 9 patchs seront mises à l'échelle, c'est pour cela qu'elles existent. Mais si vous devez utiliser une image 9-patch pour toutes les densités d'écran, cela dépend vraiment de l'image. Les images 9-patch sont plus couramment utilisées, par exemple pour les boutons. Vous pouvez avoir des boutons de tailles différentes dans votre application et une image 9-patch vous aidera à les gérer, quelle que soit la taille de votre bouton (tant que l'image 9-patch est correctement créée).

Mais disons que le design de votre bouton a des coins très arrondis pour la version hdpi. Vous créez votre image 9-patchs sans abîmer les coins mais lorsque vous la regardez dans la version ldpi, vous vous rendez compte que vos coins sont trop grands pour cette basse résolution. Dans ce cas, vous aurez besoin d'une autre image 9-patch avec des coins moins ronds, qui seront mieux adaptés à cette résolution.

La réponse finale est donc que cela dépend vraiment de votre image. Si vous pouvez créer une image à 9 patchs qui a l'air bonne dans toutes les densités, alors très bien, utilisez-la, car vous n'avez besoin que d'une seule image pour gérer toutes les densités. Mais si elle n'a pas l'air bien, à cause des coins, des gradients, ou autre, alors vous aurez besoin d'une image 9-patch pour chaque densité d'écran.

J'espère que c'est plus clair maintenant.

2voto

blackbelt Points 45840

De la documentation : neuf pièces

Un graphique NinePatchDrawable est une image bitmap extensible, qu'Android redimensionne automatiquement pour s'adapter au contenu de la vue dans laquelle vous l'avez placé en arrière-plan. Un exemple d'utilisation d'un NinePatch est l'arrière-plan utilisé par les boutons Android standard - les boutons doivent s'étirer pour s'adapter à des chaînes de caractères de différentes longueurs. Un élément dessiné NinePatch est une image PNG standard qui comprend une bordure supplémentaire de 1 pixel de large. Il doit être enregistré avec l'extension .9.png, et sauvegardé dans le répertoire res/drawable/ de votre projet.

La réponse est non. Votre patch neuf s'adaptera à différentes tailles d'écran.

0voto

LoneLyGoD Points 1

La réponse courte est OUI. Regarde ça :

Par défaut, Android met à l'échelle vos éléments graphiques bitmap ( .png , .jpg y .gif ) et les fichiers dessinables Nine-Patch ( .9.png ) de manière à ce qu'ils soient rendus à l'emplacement approprié du taille physique appropriée sur chaque appareil. Par exemple, si votre application fournit des fichiers bitmap à dessiner uniquement pour la ligne de base, la densité d'écran moyenne (mdpi), le système les met à l'échelle lorsqu'ils sont affichés sur un écran à haute densité et les réduit lorsqu'ils sont affichés sur un écran à faible densité. haute densité, et les réduit sur un écran à faible densité. Cette mise à l'échelle peut provoquer des artefacts dans les bitmaps. Pour vous assurer que vos bitmaps ont une apparence optimale, vous devez inclure des versions alternatives à différentes résolutions pour différentes densités d'écran.

à partir du document officiel du développeur Android

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X