Calificador de ancho mínimo de adaptación de Android

1. Por qué adaptarse

La fragmentación del sistema Android, la fragmentación del modelo y del tamaño de la pantalla y la fragmentación de la resolución de la pantalla son graves. Necesitamos urgentemente un mejor método de adaptación para permitir que la vista de la interfaz se muestre normalmente en cada dispositivo.

2. Adaptar conceptos de conocimiento relevantes

Píxel físico (px): representa el píxel físico del teléfono móvil.
Píxel independiente de la densidad (dp): un píxel independiente de la densidad es igual a un píxel físico en la pantalla de 160 ppp. Esta es la densidad de referencia del sistema. Densidad de la
pantalla (ppp): por pulgada de la pantalla Para los píxeles, Android agrupa todas las densidades de pantalla en 6 densidades comunes: baja (ldpi), media (mdpi), alta (hdpi), super alta (xhdpi), xxhdpi y xxxhdpi.

Obtenga el tamaño de píxel físico del dispositivo 1280px X 800px

adb shell wm size

Obtener dispositivo DPI = 213 (este extraño comando se llama densidad)

adb shell wm density

Adaptación de la pantalla de Android: conocimiento básico de la adaptación de la pantalla de
Android

3. Calificador de ancho mínimo

Calcule el ancho mínimo

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

De acuerdo con los ejemplos de píxeles (1280px X 800px) y DPI (213) en el ejemplo del Título 2 (este es un dispositivo Android de tableta que realmente encontré en desarrollo).

  • min (H, W): El ancho mínimo no distingue la dirección, y el ancho y alto mínimos son el ancho mínimo.

  • El dibujo de diseño puede entenderse como su propia unidad según 1280 X 800 unidades, tales como: dpp

  • Por ejemplo: 1280dp (px aquí se considera directamente 1dp = 1px) X 800dp (px) el ancho más pequeño real = 800 / (213/160) = 600dp

  • Generar carpeta: valores-sw600dp

  • La relación de generación es: 600dp / ancho mínimo del dibujo de diseño 1dpp = 600dp / 800dpp = 0.75dp

  • Entonces 1dpp se convierte en 0.75dp

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

Utilice ScreenMatch para generar carpetas de diferentes anchos

############################################################################
# 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

Otros métodos de adaptación

  1. dp adaptación directa
  2. Calificador de ancho y alto
  3. Modificar la densidad (plan principal de hoy)

Adaptación de pantalla de Android-Artículo de la aplicación
Sao Nian, ¡su método de adaptación de pantalla debe actualizarse! -Esquema de adaptación del calificador de ancho más pequeño

Supongo que te gusta

Origin blog.csdn.net/u011148116/article/details/106329126
Recomendado
Clasificación