ApplETS / ETSMobile-Android2

Portail étudiant mobile regroupant les principaux services accessibles aux étudiants de l'École de technologie supérieure.
http://clubapplets.ca
Apache License 2.0
12 stars 11 forks source link

fix loginBg #82

Closed Sonphil closed 7 years ago

zaclimon commented 7 years ago

Sur Android, lors de la définition d'image pour une densité donnée, (Rasterized) il doit avoir une image pour chaque densité définie. (mdpi, hdpi, xhdpi, xxhdpi, xxxhdpi) Si une image touche à l'ensemble des densités, il est mieux de le mettre directement dans le dossier res/drawables.

Dans ton cas, il y aura des appareils qui seront omis. (Ceux qui sont techniquement mdpi et hdpi) Il est possible que certains utilisateurs possèdent encore de tels appareils même s'il seraient considérés vieux pour la plupart.

J'ai testé ton changement et j'ai aussi essayé de déplacer bg_ets.jpg vers res/drawables et les deux cas fonctionnent sur mon émulateur, mon Pixel, (xxhdpi) et mon Nexus 4 (xhdpi)

Est-ce qu'il serait possible que toi et/ou @komlan55 pourriez vérifier si déplacer bg_ets.jpg vers res/drawable ne cause aucun soucis?

Sonphil commented 7 years ago

J'avais lu que Android, s'il ne trouve pas trouve pas l’image dans le dossier drawable correspondant qu'il allait chercher dans les autres dossiers. Par la suite, il met automatiquement à l'échelle selon la résolution de l'appareil.

L'image de l'ETS est de 300 dpi. Je l'ai mis dans ce dossier xhdpi qui correspond à (extra-high) ~320dpi. Donc, pour mdpi et hdpi, Android affichera l'image mis à l'échelle.

Mettre l'image dans res/drawables ne semble pas fonctionner, pour certains appareils. Lorsque qu'ils manquent de mémoire, Picasso n'affiche pas l'image afin d'éviter un crash.

J'ai essayé avec mon téléphone Samsung A5 2017 et l'image n’apparaissait pas. Par contre, lorsque je l'ai déplacé dans le dossier xhdpi, l'image s'affichait correctement.

Sonphil commented 7 years ago

J'ai ajouté des images pour hdpi et mdpi.

zaclimon commented 7 years ago

Hmm dans ce cas-là je suis curieux. En regardant les spécifications de ton appareil, il est en mesure de faire du XXHDPI. Ça veut dire qu'il aurait redimensionner l'image en XHDPI afin de l'adapter pour celui-ci.

As-tu essayé de prendre la même image et la mettre dans le dossier res/drawables-xxhdpi? Selon ton raisonnement, l'image ne serait pas en mesure d'être chargé par Picasso étant donné qu'elle ne sera pas redimensionné par Android.

Sonphil commented 7 years ago

Elle apparaît puisque xxdpi est la résolution de mon écran. Voici ce que j'ai compris.

Si tu met ton image dans un dossier drawable qui spécifie la densité, alors Android va faire une mise à l'échelle de l'image selon la résolution de l'appareil.

ldpi | mdpi | hdpi | xhdpi | xxhdpi | xxxhdpi
0.75 | 1    | 1.5  | 2     | 3      | 4

image

Si tu met ton image dans dossier spécifiant une résolution plus basse, Android va agrandir ton image. Sinon, il va la réduire. Il regarde la résolution spécifiée et la résolution de ton écran.

Par exemple, si je décide de mettre l'image de l'ETS (300 dpi) dans le dossier de mdpi (~160dpi), ça crash, En effet, puisque mon écran fait du xxhdpi (~480dpi), il fera environ x3. L'image fait réellement 300 dpi et non environ 160 dpi.

Par contre, si je met l'image dans xhdpi (~240dpi). il fera seulement x1.5. Donc, ça ne crash pas.

zaclimon commented 7 years ago

Ohh vraiment intéressant comme comportement! Est-ce que ça veut dire que si l'image est placé dans le dossier drawables, il sera considéré comme un mdpi étant donné qu'il s'agit du facteur de référence? (1)

Ça serait l'une des seules raisons possibles pour laquelle ça planterait à la place de le placer dans drawables-xhdpi.

Sonphil commented 7 years ago

C'est possible que ça soit considéré comme du mdpi.

L'ingénieur chez Google conseille conseille de mettre les images dans res/drawable-mdpi, res/drawable-hdpi, ... et non dans res/drawable qui devraitcontenir des fichiers drawable xml. https://stackoverflow.com/questions/5302428/with-default-resources-in-the-drawable-folder-mdpi-sized-whats-the-point-of-t/5302667#5302667

zaclimon commented 7 years ago

Ahh bon ben c'est parfait alors, J'ai fini mon interrogatoire. 😉 Nice job! 👍

Dernière chose, ton commit semble faire un conflit avec le master mais je crois que t'a remarqué.