Android est maintenant le plus schéma d'adaptation interface stable et efficace

avant-propos

système Android publié plus d'une décennie, l'adaptation de l'interface utilisateur sur Android a été le développement des aspects les plus importants du problème, mais je vois il y a encore beaucoup de petits partenaires sur le schéma d'adaptation Android ne comprennent pas.

Tout récemment préparé pour le client Encyclopédie Android gênes à la conception d'un système d'adaptation de la taille de l'interface utilisateur, et petits amis peuvent discuter avec cette question en détail.

Android adapter la question de base il y a deux, on est l'adaptation de l'efficacité, qui est, le processus de conception de conversion Interface App si efficace, comment assurer la réalisation de l'autre interface de l'interface utilisateur (UI) dans différentes tailles et résolutions téléphone la cohérence. Ces deux questions sont très importantes, est de veiller à ce que nous développons une très efficace, on est d'assurer l'efficacité de notre adaptation;

Aujourd'hui, nous avons deux questions fondamentales pour discuter programme d'adaptation Android. Tout d'abord, nous le savons tous, lorsque la taille du logo, Android, nous ne recommandons pas d'utiliser ce vrai unités de pixels px, entre différents téléphones, une résolution différente, comme un 96 * 96 pixels de contrôle de la résolution de la plus il se penchera plus petit plus globale sur le téléphone de l'interface utilisateur.

Semble similaire à la figure de cette façon, les effets globaux de mise en page peuvent être déformés, de sorte que l'unité px dans le fichier de mise en page n'est pas recommandé.

dp adaptation directe

Compte tenu de cette situation, Android dp recommandé que la taille de l'unité d'adapter l'interface utilisateur.

Alors quel est le dp? dp se réfère à un dispositif pixels indépendants à un dp taille de l'unité de commande, représentant les différents pixels réels dans des résolutions différentes et de tailles de téléphones mobiles tels que des téléphones portables à une résolution plus faible, il peut être 1DP = 1 pixel, et la résolution un taux plus élevé de téléphones mobiles, peut 1DP = 2px, c'est le cas, un 96 * 96dp contrôles, dans les différents téléphones mobiles seront en mesure de montrer une taille similaire. Dp alors c'est comment le calculer?

Nous savons tous que la formule: px = dp systèmes (ppp / 160) sont utilisés pour déterminer la relation mathématique entre dp px et par cela,

Donc, là encore, il y a un problème, ce dpi est-il?

dpi densité de pixels, désigne le nombre de pixels spécifiés dans la taille de l'unité logicielle, il est souvent une valeur fixe écrite dans le système de fichiers de la configuration usine.

Pourquoi voudrais-je souligner que c'est le concept du système de logiciel? Parce que nous achetons un téléphone mobile, ils entendent souvent les autres paramètres de l'appel ppi densité de pixels qui est au milieu de l'écran du téléphone, mais c'est un concept de la physique, il ne changera pas la réalité objective.

dpi est le logiciel par référence à la valeur de densité de pixel physique d'un spécifié manuellement, assurant ainsi que la densité de pixel physique dans un certain intervalle l'utilisation de la même valeur dans le logiciel. Cela contribuerait à notre adaptation de l'interface utilisateur.

Par exemple, le même téléphone résolution ppi plusieurs tailles différentes peuvent être 430.440.450, respectivement, le système Android, dpi peut être tout désigné comme 480. Dans ce cas, ppp / 160 serait une valeur relativement fixe, de sorte que sous la même résolution pour assurer une performance cohérente des différents téléphones de taille.

Et à une résolution différente, dpi sera différent, par exemple:

Selon le tableau ci-dessus, nous pouvons voir que, 720P, 1080P et téléphones mobiles, dpi est différent, ce qui signifie que les différentes résolutions, 1DP correspondant à un nombre différent de px (720P dans, 1DP = 2px, 1080P dans 1DP = 3px), qui atteint lorsque nous utilisons pour définir une taille de contrôle dp, il a montré une valeur de la taille de pixel correspondant dans un autre téléphone.

On peut dire que vous pouvez adapter fondamentalement résoudre le problème par différents dp de téléphone ainsi que la mise en page adaptative et le ratio de distribution de poids, ce qui est essentiellement le plus primitif schéma d'adaptation Android.

De cette façon, il y a deux petits problèmes, tout d'abord, que nous ne pouvons garantir l'adaptateur d'interface d'écriture grande majorité des téléphones portables, certains téléphones ont encore besoin d'un adaptateur séparé Pourquoi dp résolu que 90 pour cent des problèmes d'adaptation, et parce que tous ne sont pas 480 dpi 1080P téléphone

Tels que pixel2 Google (1920 x 1080) de 420 dpi, qui est, dans pixel2, 1DP = 2.625px, cela conduira à une résolution du même téléphone, de sorte qu'un 100dp * 100dp contrôles, en général 1080P au téléphone, il peut avoir été 300px et Pixel 2, la seule 262.5px, la taille réelle de ces contrôles sera différent.

Pour plus d'images de la série, nous supposons une largeur ImageView est réglée sur 360dp, puis manifesté dans les deux figures suivantes dans le fichier de mise en page ne sont pas les mêmes:

Figure Un 1080P, téléphone 480dpi, Figure II est 1080P, téléphone 420dpi

Vous pouvez voir de l'arrangement ci-dessus, est la même 1080P téléphone cellulaire, la différence est tout à fait évident. Dans ce cas, l'interface utilisateur nous pouvons avoir besoin de faire quelques ajustements et même un adaptateur séparé.

Le deuxième problème, qui ne peut pas être rapide et moyen efficace de réaliser le projet du concepteur du code de mise en page, l'adaptation directe par dp, nous ne pouvons faire différentes interface utilisateur d'adapter le téléphone cellulaire de base, mais dans la conception et le code interface utilisateur l'écart entre, dp ne peut pas être résolu, car dp est pas de vrais pixels.

De plus, la largeur et la hauteur du projet de conception et de téléphones Android souvent vraie largeur et la hauteur varient considérablement, avec notre projet de conception, par exemple, le projet de conception de la largeur et la hauteur est 375px * 750px, alors que le téléphone lui-même peut généralement être 1080 * 1920,

Ainsi, dans le développement quotidien est de savoir comment nous avons traversé cette division il? Ah essentiellement, en pourcentage ou en estimer ou à fixer une valeur standard comme. En bref, quand nous le projet de conception, projet de conception de ImageView est 128px * 128px, lorsque nous écrivons des fichiers de mise en page, mais ne peut pas être directement écrit 128dp * 128dp.

Dans le processus de la transition vers le projet de code de conception d'interface utilisateur, nous avons besoin de dépenser beaucoup d'énergie à la taille de la conversion, ce qui réduira considérablement notre productivité, entraînant une baisse de l'efficacité du développement.

La largeur et la hauteur de l'adaptation de qualification

Pour parvenir à un développement de l'assurance-chômage efficace, l'émergence d'un nouveau schéma d'adaptation, je l'appelle La largeur et la hauteur de l'adaptation de qualification . En termes simples, la largeur et la hauteur de pixels que la valeur exhaustive du marché de tous les téléphones Android:

Définition d'une résolution de référence, d'autres résolutions sont calculées en fonction de la résolution de référence, dans différentes tailles à l'intérieur des dossiers, la préparation du fichier correspondant basé sur la taille dimens.

Par exemple, en se référant à la résolution 480x320

Une largeur de 320, la résolution de toute la largeur dans 320 parties d'une intégrale, la valeur de x1-x320

La hauteur est de 480, la hauteur d'une résolution en 480 parties de l'ensemble, une valeur de y1-y480

DIMENS Donc fichier pour une résolution de 800 * 480, la

x1 = (480/320) * 1 = 1.5px

x2 = (480/320) * 2 = 3px

Cette fois-ci, si l'on utilise l'interface de conception d'interface utilisateur est la résolution standard, alors nous pouvons remplir les dimens correspondant selon la taille du projet de conception cite, et quand APP est en cours d'exécution à différentes résolutions du téléphone, le système selon ces références dimens dossier ci-dessous la résolution pour trouver la valeur correspondante. Nous avons donc résolu fondamentalement le problème de l'adaptation, mais aussi d'améliorer considérablement l'efficacité de notre développement de l'interface utilisateur

Mais ce programme a une erreur fatale, il est nécessaire d'adapter avec précision frappé, comme 1920x1080 téléphone pour être sûr de trouver les qualificatifs 1920x1080, sinon vous ne pouvez utiliser les fichiers DIMENS par défaut uniforme. La taille par défaut des mots, l'interface utilisateur est susceptible de se déformer, tout simplement, est très faible tolérance aux pannes.

Mais il y a certaines équipes ont utilisé ce programme, on peut dire qu'il est un plus mature et programme efficace de.

cadre adaptateur AC (a cessé d'entretien)

grand système d'adaptation frère pendu Che Yang Le projet a également inspiré du programme de qualification largeur et la hauteur.

L'utilisation est très simple:

La première étape: préciser la taille de votre projet de conception dans AndroidManifest votre projet.

< méta-données android: name = "design_width" android: value = "768" > < / méta-données > < méta-données android: name = "design_height" android: value = "1280" > < / méta-données >

Étape 2: Demandez à votre activité héritée de AutoLayoutActivity.

Ensuite, nous pouvons utiliser des valeurs de pixels spécifiques directement dans le fichier de mise en page à l'intérieur, par exemple, le projet de conception est de 96 * 96, alors nous pouvons écrire 96px directement, APP est en cours d'exécution, le cadre nous aidera à l'échelle escamotable en fonction de la taille des différents téléphones mobiles .

Cela peut être une excellente solution, car davantage sur la base d'une large adaptation du qualificatif, et résoudre le problème de la tolérance aux pannes peut dire pour obtenir un ajustement parfait des deux à élaborer des exigences efficaces et précises.

Mais nous pouvons penser, parce que le cadre fera pour transformer onMeasure l'intérieur lors de l'exécution, nous pourrions être affectons ou limiter les contrôles personnalisés, il peut y avoir un certain contrôle spécifique, vous avez besoin d'un adaptateur séparé, il peut ne pas être présent dans la fosse sombre prévisible, il y a une question plus importante, et qui est tout le cadre du travail d'adaptation est fait, plutôt que le système complet

En utilisant ce cadre, l'avenir en cas d'un problème difficile à résoudre, en les remplaçant est très gênant, et l'entretien une fois que le projet est arrêté, l'escalade ultérieure ne peut compter que sur vous-même, cette équipe peut payer le prix? Bien sûr, il a cessé de maintenir.

Mais il est seulement en termes de solutions techniques, il est indéniable que c'est un bon projet open source.

résumé

Plusieurs schéma d'adaptation discuté ci-dessus peuvent tous être utilisés dans le développement réel de plus matures programmes, mais il y a en effet de nombreux développeurs utilisent. Cependant, parce qu'ils ont chacun quelques défauts, nous avons donc utilisé le programme mentionné ci-dessus aussi il faut un effort supplémentaire pour répondre à ces défauts qui peuvent exister.

Donc, s'il est relativement parfait, pas de défauts manifestes des options?

adaptation smallestWidth

adaptation smallestWidth, ou l'adaptation de qualification de l'appel. Il fait référence identifie Android la hauteur de l'écran disponible et la largeur de la valeur taille minimale dp (en fait de téléphone de valeur largeur), puis rechercher les qualificatifs de dossier de fichier de ressources correspondant en fonction du résultat de la reconnaissance dans le fichier de ressources.

Ce mécanisme et le qualificatif largeur et la hauteur adaptée principe est le même que mentionné ci-dessus, il est de sélectionner le système de fichiers correspondant par une règle spécifique.

Par exemple, le millet 5480 dpi, les pixels sont latéralement 1080px, selon px = dp (dpi / 160), la valeur dp est transversal 1080 / (480/160), à savoir 360dp, le système va chercher la présence ou l'absence dossiers valeur sw360dp et le fichier de ressources correspondant.

La plus grande différence entre haut et large adaptation qualifié l'adaptation de qualification smallestWidth est que les premiers ont une bonne tolérance aux pannes, s'il n'y a pas de dossier valeur sw360dp, le système se penchera, comme 360dp de la plus proche valeur sw350dp seulement, puis Android va choisir le dossier ci-dessous la valeur sw350dp le fichier de ressources.

Cette fonction est la solution parfaite au problème de la largeur de la tolérance aux pannes et la hauteur de qualification mentionné ci-dessus.

Ce sont les scénarios ci-dessus plusieurs les plus proches à une solution parfaite.

Tout d'abord, De l'efficacité du développement, il est inférieur à un du mode de réalisation ci-dessus. La mise à l'échelle est fixe, nous pouvons suivre la conception de base de la taille de l'interface utilisateur sans dimens d'hésitation remplissage dans la référence correspondante.

Nous devons également concevoir le projet de 375 pixels de largeur, par exemple, les fichiers diemns valeurs sw360dp dans le dossier devrait être comment l'écrire? Sous ce dossier, la valeur minimale de la largeur dp signifie que le téléphone est 360, nous 360dp également divisé en 375 parties égales, chaque pixel dans un projet de conception, probablement au nom de la valeur smallestWidth 360dp le téléphone 0.96dp

Ensuite, la prochaine chose est très simple, s'il y a eu une ImageView 10px * 10px sur le projet de conception, nous pouvons écrit inconsidérément dans une disposition correspondant à la taille du fichier.

Et cette diemns des valeurs de référence à différentes valeurs SWDP dossier sont différentes, et de telles valeurs-sw360dp valeurs sw400dp,

Lorsque le système reconnaît la valeur smallestWidth du téléphone, il recherchera automatiquement les plus récentes taille de données cible et les fichiers de ressources.

En second lieu, la stabilité, ce qui est mieux que le mode de réalisation décrit. dp natif d'adaptation peut rencontrer certains Pixel spécial 2 de ce téléphone nécessite un adaptateur séparé

Mais dans l'adaptation smallestWidth en calculant Pixel 2 combinés de la valeur smallestWidth est 411, nous avons seulement besoin de générer une valeur-sw411dp (ou arrondi générer des valeurs-sw410dp aucun problème) va résoudre le problème.

mécanisme d'adaptation smallestWidth, nous avons juste besoin d'être généré par le système pour un ensemble de règles pour faire en sorte que le fichier de ressources correspondant à la question de ce qui ne sera pas difficile à résoudre, cela n'affectera pas notre code de logique métier, et aussi longtemps que nous générons les ressources la distribution de fichiers est raisonnable, même si la valeur correspondante ne correspond pas exactement à fichier de ressources smallestWidth se trouve, il peut aussi être rétrocompatible, recherchez le fichier de ressources le plus proche.

Bien sûr, le programme d'adaptation smallestWidth a un petit problème est qu'il a été introduit dans l'avenir d'Android 3.2, l'intention de Google est de l'utiliser pour adapter le fichier à plat (mais en fait, l'effet est nettement meilleur ajustement pour diemns)

Cependant, tous les projets en cours devraient être la version minimale 4.0 sont les (si vieux Project 4.0 Encyclopédie embarras est le plus bas oh), donc ce problème n'est pas vraiment important.

Les commentaires ont également dit une faille, j'oublié de mentionner, et qui est plus dimens fichier APK peut conduire à une plus grande, il est vrai, selon la taille et l'étendue de la couverture générée fichiers Dimens, apk peut augmenter autour de 300kb-800kb, embarrassant actuellement cent dimens taille du fichier 406KB, je pense que cela est acceptable.

Aujourd'hui, le système d'adaptation des titres (mis à jour)

Lien vers l'article, jusqu'à ce que vous aviez fait tout contact, je lis simplement encore une fois, on peut dire, c'est une solution relativement parfaite, laissez-moi brièvement l'idée de ce programme, il est en modifiant les valeurs de densité, la force la résolution de toutes tailles téléphone en une valeur de largeur uniforme dp de la valeur, cela résoudrait tous les problèmes d'adaptation.

Par exemple, le projet de conception largeur est 360px, puis développée ici définira la valeur cible dp 360dp, dans des dispositifs différents, modifier dynamiquement les valeurs de densité, assurant ainsi (largeur de pixel de téléphone) px / densité Cette valeur est toujours 360dp, donc alors, nous pouvons garantir une interface utilisateur cohérente sur la performance du dispositif différent.

Le programme peu invasive et ne comportait pas l'API propriétaire, devrait également être un très bon programme, je ne pense pas qu'il sera forcé de modifier la densité si d'autres effets, car il y a les manchettes aujourd'hui avec les fabricants, devrait garantir la stabilité a.

Mais d'après mon observation, ce programme n'est pas très sympathique à l'ancien projet, car après avoir modifié la valeur de densité du système, la taille réelle de la mise en page entière va changer, si vous voulez utiliser l'ancien fichier de projet, je crains l'ensemble du fichier de mise en page la taille de l'emploi sont susceptibles de projet de reconception conformément à nouveau modifié.

Donc, si vous êtes dans le maintien ou l'amélioration de l'ancien projet, l'utilisation de ce programme réfléchira à deux fois.

Sur certaines questions

Q: Le schéma d'adaptation à utiliser?

Cliquez ici pour aller au-dessus projet github, téléchargé sur le local, puis exécutez le projet Java, va générer le fichier correspondant dans le répertoire racine du local, si vous avez besoin de générer plus de taille, vous pouvez remplir la taille dont vous avez besoin dans le fichier DimenTypes.

Q: Y at-il une taille recommandée?

300,320,360,411,450, comparant ces dimensions sont nécessaires, puis insérez d'autres dimensions peuvent, sinon assuré, peut-être entre 300-450, dans les étapes 10 pour générer une douzaine de fichiers.

Q: problème d'adaptation plat?

Cela peut être divisé en deux questions, la première, la deuxième équipe, est de savoir comment adapter la plaque n'est pas spécifiquement pour tablette UI conçue ?. Si l'équipe de conception interne n'est pas pour l'interface utilisateur Tablet, alors il a besoin pour les applications en cours sur la tablette est probablement pas trop difficile à voir.

Procédé pour l'adaptation est une adaptation passive, à savoir pas plus de 480 est adapté pour générer le fichier, de telle sorte que la plaque 480 sera dimens occasion fichier de cette taille, de sorte que mieux adapté que active;

Et si l'initiative équipe a conçu la tablette interface utilisateur, nous devons prendre l'initiative pour générer un adaptateur de fichier plat, probablement entre 600-800, la taille de la clé est 640768. Puis suivre les plans de conception d'interface utilisateur pour écrire.

Q: que ce soit avec l'utilisation de ce programme n'a pas besoin de la mise en page comme des wrap_content

Ceci est tout à fait fausse route! Si la conception de l'interface utilisateur beaucoup plus adapté à une utilisation wrap_content, match_parent, layout_weight, etc., nous ne hésitera pas à utiliser, mais aussi sur un haut de cette dimension, nous voulons par glissement de manière circonstancielle, ou match_parent, essayez de ne pas écrire mort.

En bref, tout le programme d'adaptation ne vise pas à remplacer match_parent, wrap_content, mais de les améliorer.

Enfin mettre l'apprentissage Mind Map à cet égard et Android vous donner un aspects avancés de l'apprentissage, du matériel d'apprentissage doivent être une attention plus détaillée + réponse lettre privée, « Andrews données » accès gratuit!

Accédez gratuitement à Android données d'ordre élevé, plus le groupe: 185873940

Accédez gratuitement à Android données d'ordre élevé, plus le groupe: 185873940

Commande de lecture du mode: HG 144 GP03d Dendrobium
Précédent
L'expérience d'une formation de course du pilote automatique du public, l'ancien pilote a dit que plein de crainte
Prochain
Jouez en mode contrôle: vicissitudes texture, MS-06S Zaku Ver 2.0.
frappes technologie d'imagerie 3D, qui marquera le début du changement de technologie financière?
Alipay architecture client à résoudre: optimisation Android vitesse de démarrage du client de la collecte des ordures
module de commande de lecture: chasseur désert, camouflage artillerie lourde
190417 Beauty est vraiment terminée par la face « Elle Corée » numéro d'Avril de procès frappé pictural de couleur rouge à lèvres Taeyeon
module de commande de lecture: GP01 couleur RG panda
Un examen plus approfondi « le plus comme un robot humain », le responsable production Sophia année prochaine
"Cadre Android" basé en mode MVP Retrofit2 + package RXjava
« Je suis très bon » Ming Ming Yu conseillé de réfléchir à deux fois d'acheter une maison Mingzhe veulent des investissements Nuekuan était contre
En fonction de la scène SD, licorne et nouveau numéro Zeon: module de commande de jeu
Illustré 190417 Long Time No See divinité Cui Xiuying est prise la participation du public à des événements de charité
Cadre cadre Android série DisplayManagerService (a)