Adaptation d'écran de la fragmentation Android

Adaptation d'écran de la fragmentation Android

De nos jours, en raison de l'ouverture du système Android, diverses versions, résolutions, modèles et autres appareils Android de différents fabricants sont apparus sur le marché. Pour notre développement, la fragmentation est définitivement un problème de brainstorming. Fragmentation du système Android, fragmentation de la taille de l'écran du modèle Android et fragmentation de la résolution de l'écran Android. Il existe différentes tailles d'écran grand public de téléphones Android sur le marché, et même si le problème de taille d'écran est résolu, les différentes résolutions sont éblouissantes. Face au problème d'adaptation posé par les étudiants du test, le cœur, le foie et les poumons ont tremblé. Aujourd'hui, nous allons parler des étapes de résolution pour l'adaptation d'écran.

1. Les solutions d'adaptation d'écran sont:

Correspondance "mise en page" : Utilisez la mise en page relative (RelativeLayout), désactivez la mise en page absolue (AbsoluteLayout). Chargez la disposition d'interface utilisateur et le qualificatif de taille correspondants en fonction de la configuration de l'écran.

Correspondance "composant de mise en page" : utilisez "wrap_content", "match_parent" et "weight" pour contrôler la largeur et la hauteur du composant de vue

Correspondance "ressource image" : utiliser une image bitmap d'étirement automatique: type d'image de neuf patchs

2. La signification de certains termes pour l'adaptation d'écran Android:

Taille de l'écran: c'est-à-dire que ce que nous appelons généralement un certain téléphone mobile est un écran de quelques pouces, comme le HTC one V, ce téléphone mobile mesure 3,7 pouces, le pouce se réfère ici aux pouces (pouces), l'unité utilisée dans l'arène internationale, 1 pouce = 2,54 cm, 3,7 pouces fait référence à la longueur diagonale de l'écran.

Résolution d'écran: fait référence au nombre de pixels dans la largeur et la hauteur de l'écran, par exemple, HTC one V est de 480 * 800.

Densité d'écran: le nombre de pixels par pouce, comme le HTC one V, est de 252 px / pouce.

px: pixels. Un écran d'affichage est composé de nombreux points lumineux et chaque point lumineux est un pixel. Parce que ces points lumineux sont très petits et denses, pensez-y. Sur le téléphone portable de 3,7 pouces mentionné ci-dessus, il y a 480 points lumineux dans le sens horizontal et 800 points lumineux dans le sens vertical, donc le texte ou l'image affiché est très délicat et lisse.

ppi: Cela signifie la même chose que la densité de l'écran. Le nom complet est pixel par pouce. C'est un nom professionnel.

dpi: point par pouce, le nombre de points par pouce. Dans le domaine de l'affichage électronique, il a la même signification que PPI. Cette abréviation n'a de sens que lors de l'impression. Il n'y a pas de nom pour PPI dans le champ d'impression, uniquement DPI, ce qui signifie que l'imprimante imprime quelques pixels par pouce. Sous la même largeur et hauteur de pixel, plus le dpi est grand, plus le motif imprimé est petit.

dip: ou dp, il s'agit d'une mesure unique au développement Android, appelée pixels indépendants de l'écran, elle ne représente aucune longueur ou point de pixel spécifique, cette valeur ne sera convertie que sur un téléphone mobile avec une densité d'écran spécifique La valeur de pixel spécifique . Ce n'est qu'alors qu'il aura une signification pratique. La conversion spécifique sera expliquée ensuite.

Le répertoire res du projet Android est généralement ajouté par notre propre création, il y aura 6 répertoires, à savoir: drawble drawble-ldpi drawble-mdpi drawble-hdpi drawble-xhdpi drawble-xxhdpi , cela n'inclut pas le répertoire drawble plus spécial (pour exemple, drawlbe-land-hdpi, ce qui signifie des images haute résolution dans le sens horizontal. Quelle que soit la longueur de ces répertoires, ils sont mis en correspondance selon une petite règle. Notre objectif est de trouver la règle de l'individu et de l'appliquer. entier).

3. La relation entre la taille de l'écran, la résolution et la densité de pixels

Densité de pixels = Sqrt (pixels horizontaux × pixels horizontaux + pixels verticaux × pixels verticaux) / taille de l'écran

4. Étapes pour résoudre le problème de l'adaptation de la taille de l'écran et de la densité de l'écran du contrôle.

La méthode d'adaptation en pourcentage, les étapes sont les suivantes:

1. En fonction d' une certaine résolution, générez une liste de numéros de pixels correspondant à toutes les résolutions
. 2. Stockez la liste de numéros de pixels générée dans le fichier de valeurs correspondant dans le répertoire res.
3. Trouvez la taille en fonction du dessin de conception donné par le concepteur de l'interface utilisateur L'unité correspondant au nombre de pixels, puis définissez-la sur le contrôle

Étape 1 : En fonction d'une certaine résolution, générez une liste du nombre de pixels correspondant à toutes les résolutions

Nous utilisons maintenant la résolution de 320x480 comme référence:
divisez la largeur de l'écran en 320 parties, la valeur est x1 ~ x320,
divisez la hauteur de l'écran en 480 parties, la valeur est y1 ~ y480,
puis générez une liste du nombre de pixels correspondant à la résolution, comme indiqué ci-dessous:

lay_x.xml(宽)
<?xml version="1.0" encoding="utf-8"?>
<resources><dimen name="x1">1.0px</dimen>
<dimen name="x2">2.0px</dimen>
<dimen name="x3">3.0px</dimen>
<dimen name="x4">4.0px</dimen>
<dimen name="x5">5.0px</dimen>
<dimen name="x6">6.0px</dimen>
<dimen name="x7">7.0px</dimen>
<dimen name="x8">8.0px</dimen>
<dimen name="x9">9.0px</dimen>
<dimen name="x10">10.0px</dimen>
<dimen name="x300">300.0px</dimen>
<dimen name="x301">301.0px</dimen>
<dimen name="x302">302.0px</dimen>
<dimen name="x303">303.0px</dimen>
<dimen name="x304">304.0px</dimen>
<dimen name="x305">305.0px</dimen>
<dimen name="x306">306.0px</dimen>
<dimen name="x307">307.0px</dimen>
<dimen name="x308">308.0px</dimen>
<dimen name="x309">309.0px</dimen>
<dimen name="x310">310.0px</dimen>
<dimen name="x311">311.0px</dimen>
<dimen name="x312">312.0px</dimen>
<dimen name="x313">313.0px</dimen>
<dimen name="x314">314.0px</dimen>
<dimen name="x315">315.0px</dimen>
<dimen name="x316">316.0px</dimen>
<dimen name="x317">317.0px</dimen>
<dimen name="x318">318.0px</dimen>
<dimen name="x319">319.0px</dimen>
<dimen name="x320">320px</dimen>
</resources>
lay_y.xml(高)

<?xml version="1.0" encoding="utf-8"?>
<resources><dimen name="y1">1.0px</dimen>
<dimen name="y2">2.0px</dimen>
<dimen name="y3">3.0px</dimen>
<dimen name="y4">4.0px</dimen>
...
<dimen name="y480">480px</dimen>
</resources>

Après avoir trouvé la référence, il est temps de terminer d'autres résolutions. Prenons maintenant la résolution de 1 080 x 1 920 comme exemple:

Comme le benchmark est 320x480, 1080/320 = 3,375px, 1920/480 = 4px, le fichier correspondant doit donc être

lay_x.xml
<?xml version="1.0" encoding="utf-8"?>
<resources><dimen name="x1">3.375px</dimen>
<dimen name="x2">6.65px</dimen>
<dimen name="x3">10.125px</dimen>
...
<dimen name="x320">1080px</dimen>
</resources>
lay_y.xml
<?xml version="1.0" encoding="utf-8"?>
<resources><dimen name="y1">4px</dimen>
<dimen name="y2">8px</dimen>
<dimen name="y3">12px</dimen>
<dimen name="y4">16px</dimen>
...
<dimen name="y480">1920px</dimen>
</resources>

Étape 2 : placez la liste de numéros de pixels générée dans le fichier de ressources correspondant.
La liste de numéros de pixels générée (lay_x.xml et lay_y.xml) sera stockée dans le fichier de valeurs correspondant dans le répertoire res (notez que la largeur et la hauteur doit correspondre), comme indiqué ci-dessous:
Le fichier de valeurs correspondant dans le répertoire res

Étape 3 : Selon la taille sur le dessin de conception d'une certaine résolution donnée par le concepteur de l'interface utilisateur, recherchez l'unité correspondant au nombre de pixels, puis définissez-la sur le contrôle
comme indiqué ci-dessous:

<FrameLayout >
 
    <Button
        android:layout_gravity="center"
        android:gravity="center"
        android:text="@string/hello_world"
        android:layout_width="@dimen/x160"
        android:layout_height="@dimen/y160"/>
 
</FrameLayout>

Conclusion
En utilisant la méthode d'adaptation mentionnée ci-dessus, il devrait être capable d'effectuer une adaptation à 90%, mais ses défauts sont encore évidents:
comme px est effectivement utilisé comme unité de mesure de la longueur, il en sera autrement si dp est utilisé comme unité de mesure comme l'exige Google. Écart

Toutes les résolutions doivent être incluses autant que possible, car c'est la base de l'utilisation de cette solution.Si une certaine résolution manque, l'adaptation d'écran ne sera pas terminée.

Les fichiers xml de description de pixels de résolution excessive augmenteront la taille du progiciel et la difficulté de maintenance

Correspondance "Ressource d'image"

Essence : faire en sorte que les ressources d'image affichent le même effet de pixel sur différentes densités d'écran

Méthode : Fournissez des bitmaps de sauvegarde (ressources d'image qui correspondent à la taille de l'écran)

Étant donné qu'Android peut fonctionner sur des appareils avec différentes densités d'écran, les ressources bitmap que nous fournissons doivent toujours répondre aux exigences de différentes densités:

Type de densité Représente la résolution (px) Densité du système (dpi)
Faible densité (ldpi) 240 x 320 120
Densité moyenne (mdpi) 320 x 480 160
Haute densité (hdpi) 480 x 800 240
Ultra haute densité (xhdpi) 720 x 1 280 320
Super ultra haute densité (xxhdpi) 1 080 x 1 920 480

Étape 1: Générez des images correspondantes pour chaque densité selon les plages de tailles suivantes.

Par exemple, si nous générons des images de taille 200x200 px pour les appareils xhdpi, nous devrions générer des images de taille 150x150, 100x100 et 75x75 pour les appareils hdpi, mdpi et ldpi selon les proportions correspondantes.

Autrement dit, un ensemble de résolution = un ensemble de ressources bitmap (ceci est bien sûr réalisé par le concepteur d'interface utilisateur)

Étape 2: Placez le fichier image généré dans le sous-répertoire correspondant (mdpi, hdpi, xhdpi, xxhdpi) sous res /, et le système sélectionnera automatiquement l'image appropriée en fonction de la densité d'écran de l'appareil exécutant votre application

Étape 3: En référençant @ drawable / id, le système peut sélectionner automatiquement le bitmap approprié en fonction de la densité d'écran (dpi) de l'écran correspondant.
Remarque:
s'il s'agit de 9 images ou images qui ne nécessitent pas plusieurs résolutions, placez-les simplement dans le dossier pouvant être dessiné. Les images avec les résolutions correspondantes doivent être placées correctement dans le dossier approprié, sinon cela causera des problèmes tels que l'étirement de l'image.

À mon insu, c'est presque la même chose. J'en parlerai aujourd'hui. Je continuerai à partager expérience et expérience avec vous dans le suivi. Enfin, je vous recommande de découvrir et de résoudre rapidement le problème d'adaptation d'écran Android. Vous pouvez cliquez sur le portail pour en savoir plus sur l'excellent test. Si vous êtes intéressé, vous pouvez immédiatement ajouter le groupe officiel au groupe officiel: 214483489

Cliquez sur "Portail" pour connaître les derniers développements de Youce.
Portail: https://newtest.21kunpeng.com/home

Je suppose que tu aimes

Origine blog.csdn.net/weixin_46033259/article/details/103630009
conseillé
Classement