Qualificateur de largeur minimale d'adaptation Android

1. Pourquoi s'adapter

La fragmentation du système d'Android, la fragmentation du modèle et de la taille de l'écran et la fragmentation de la résolution de l'écran sont graves. Nous avons besoin de toute urgence d'une meilleure méthode d'adaptation pour permettre à la vue de l'interface de s'afficher normalement sur chaque appareil.

2. Adapter les concepts de connaissances pertinents

Pixel physique (px): représente le pixel physique du téléphone mobile.
Pixel indépendant de la densité (dp): un pixel indépendant de la densité est égal à un pixel physique sur l'écran 160 dpi. Il s'agit de la densité de base du système.
Densité de l'écran (dpi): par pouce de l'écran Pour les pixels, Android regroupe toutes les densités d'écran en 6 densités communes: faible (ldpi), moyenne (mdpi), élevée (hdpi), super élevée (xhdpi), xxhdpi et xxxhdpi.

Obtenez la taille de pixel physique de l'appareil 1280px X 800px

adb shell wm size

Obtenez le DPI du périphérique = 213 (cette commande étrange est appelée densité)

adb shell wm density

Adaptation d'écran Android - Connaissance de base de
l'adaptation d'écran Android

3. Qualificateur de largeur minimale

Calculez la largeur minimale

smallestWidth = min(H,W)/(DPI/160)

D'après les exemples de pixels (1280px X 800px) et DPI (213) de l'exemple du titre 2 (il s'agit d'une tablette Android que j'ai vraiment rencontrée en développement).

  • min (H, W): La largeur minimale ne distingue pas la direction, et la largeur et la hauteur minimales sont la largeur minimale.

  • Le dessin de conception peut être compris comme votre propre unité selon 1280 X 800 unités, telles que: dpp

  • Par exemple: 1280dp (px ici est directement considéré 1dp = 1px) X 800dp (px) the real smallestWidth = 800 / (213/160) = 600dp

  • Générer le dossier: values-sw600dp

  • Le rapport de génération est: 600dp / largeur minimale du dessin de conception 1dpp = 600dp / 800dpp = 0.75dp

  • Donc 1dpp est converti en 0.75dp

<dimen name="dpp1">0.7500dp</dimen>
...
<dimen name="dpp10">7.5000dp</dimen>

Utilisez ScreenMatch pour générer des dossiers de différentes largeurs

############################################################################
# Start with '#' is annotate.                                              #
# In front of '=' is key, cannot be modified.                              #
# More information to visit:                                               #
#   http://blog.csdn.net/fesdgasdgasdg/article/details/52325590            #
#   http://download.csdn.net/detail/fesdgasdgasdg/9913744                  #
#   https://github.com/mengzhinan/PhoneScreenMatch                         #
############################################################################
#
# You need to refresh or reopen the project every time you modify the configuration,
# or you can't get the latest configuration parameters.
#
#############################################################################
#
# Base dp value for screen match. Cut the screen into [base_dp] parts.
# Data type is double. System default value is 360.
# I advise you not to modify the value, be careful !!!!!!!!! _^_  *_*
base_dp=800
# Also need to match the phone screen of [match_dp].
# If you have another dp values.
# System default values is 384,392,400,410,411,480,533,592,600,640,662,720,768,800,811,820,960,961,1024,1280,1365
match_dp=600,1080
# If you not wanna to match dp values above. Write some above values here, append value with "," .
# For example: 811,961,1365
ignore_dp=384,392,400,410,411,432,480,533,592,640,662,720,768,800,811,820,960,961,1024,1280,1365
# They're not android module name. If has more��split with , Symbol.
# If you set, it will not show in SelectDialog.
# If you have, write here and append value with "," .
# For example: testLibrary,commonModule
# System default values is .gradle, gradle, .idea, build, .git
ignore_module_name=
# Use which module under the values/dimen.xml file to do the base file,
# and generated dimen.xml file store in this module?
# Default value is 'app'.
match_module=app
# Don't show select dialog again when use this plugin.
# System screen match will use the last selected module name or default module name.
# You can give value true or false. Default value is false.
not_show_dialog=false
# Do you want to generate the default example dimens.xml file?
# In path of .../projectName/screenMatch_example_dimens.xml, It does not affect your project code.
# You can give value true or false. Default value is false.
not_create_default_dimens=false
# Does the font scale the same size as the DP? May not be accuracy.
# You can give value true or false. Default value is true. Also need scaled.
is_match_font_sp=false
# Do you want to create values-wXXXdp folder or values-swXXXdp folder ?
# I suggest you create values-swXXXdp folder,
# because I had a problem when I was working on the horizontal screen adapter.
# values-swXXXdp folder can solve my problem.
# If you want create values-swXXXdp folder, set "create_values_sw_folder=true",
# otherwise set "create_values_sw_folder=true".
# Default values is true.
create_values_sw_folder=true

Autres méthodes d'adaptation

  1. adaptation directe dp
  2. Qualifiant de largeur et de hauteur
  3. Modifier la densité (plan du titre d'aujourd'hui)

Android Screen Adaptation-App Article
Sao Nian, votre méthode d'adaptation d'écran devrait être mise à niveau! -SmallestWidth qualifier schéma d'adaptation

Je suppose que tu aimes

Origine blog.csdn.net/u011148116/article/details/106329126
conseillé
Classement