Bonjour,
Je suis novice dans la programmation android et développe actuellement une application qui devra être utilisable sur tablette et smartphone, quelque soit la taille de l'écran.
J'ai pas mal cherché sur divers forum mais je ne comprend toujours pas grand chose au niveau des différentes possibilités offertes par Android au niveau de l'adaption vis à vis des différentes devices.
Ce que j'ai compris :
Mettre des images dans les dossier drawable-mdpi drawable-hdpi etc... en respectant les rapports donnés par android permet d'afficher, sur n'importe quelle taille d'écran, des images VISUELLEMENT de la même taille. (un bouton fera 4 cm sur une tablette en mdpi mais aussi 4 cm sur un smartphone en xhdpi) Exact ?
Creer différents layout "à la main" en XML et les mettre dans les dossiers layout-large, layout-xlarge etc... nous permet de mettre en place différentes mises en page en fonction des devices (par exemple, deux scrolls côte à côte pour les tablettes et deux scrolls l'un en dessous de l'autre pour les smartphones ?). Exact ?
Ce que je n'ai pas compris :
Puisque la mise en place des layout à la main ne sert "qu'a" différencier la mise en page, aucune mise à l'echelle de la taille n'est faites ? Elle est, à la limite, faite lorsqu'il va chercher les images dans les drawable mais de maniére à avoir un rendu visuel identique partout ?
Dans mon cas :
J'ai tout codé à la main niveau interface graphique. Seul le relativeLayout principal est disponible dans mon layout en XML.
J'ai les images disponibles dans tous les dossiers drawable avec les rapport respectés.
J'ai fait une mise à l'echelle de chacun de mes élements graphique de la maniére suivante :
tailleSurCetteDevice = tailleSurLaDeviceOptimisee * rapportEntreLesDeuxDevices * DensiteSurCetteDevice
Sachant que la device optimisée correspond à une galaxytab2 qui est en mdpi et que le rendu graphique est juste parfait.
Cette formule me permet de respecter les pourcentages du style "ce bouton fait 10% de la largeur de la galaxytab2 dans sur la device actuelle il faut qu'il fasse aussi 10% de la largeur sur la device actuelle"
Le résultat est à peu prés cohérent mais il reste imprécis, mes marges ne sont pas mises à l'échelle, bref ce n'est pas satisfaisant dutout.
Quel cheminement cohérent adpoter, en passant le moins possible par le xml ?
Cordialement
Partager