El arsenal de Android – Complemento de Gradle

Admite fácilmente múltiples tamaños de pantalla cambiando el tamaño.

¿Cómo funciona Xdimen?

Cuando tiene un diseño de interfaz de usuario con un tamaño específico y necesita admitir diferentes móviles o tabletas vertical u horizontalmente. Este caso xdimen puede ayudarlo a generar tamaños escalables para tamaños de pantalla de dispositivos comunes.

Xdimen genera un directorio de resolución alternativo para cada ancho de pantalla común (configurable) y cambia el tamaño de su proyecto.

Los recursos XML se generan con la ayuda de constructor kotlin xml

Más información sobre Xdimen aquí

Uso

Agregar al proyecto

Xdimen debe aplicarse en un proyecto de Android.

maravilloso
  plugins {
    id 'io.github.islamkhsh.xdimen' version "$latest_version"   
    // agp plugin
  } 
kotlin
  plugins {                         
    id("io.github.islamkhsh.xdimen") version "$latest_version"  
    // agp plugin
  }

Configurar Xdimen

Todas las propiedades son solo opcionales designWidth es requerido. Las propiedades se analizan con más detalle en la siguiente sección.

maravilloso
  xdimen {
    deleteOldXdimen = true
    designWidth = 411 // required
    designDpi = mdpi()
    targetDevicesWidth = [360, 375, 411]
    dimensRange {
        minDimen = -10
        maxDimen = 600
        step = 0.5d
    }
    fontsRange {
        minDimen = 10
        maxDimen = 60
        step = 1.0d
    }
}
kotlin
  xdimen {
    deleteOldXdimen.set(true)
    designWidth.set(411) // required
    designDpi.set(mdpi())
    targetDevicesWidth.set(phonePortrait)
    dimensRange {
        minDimen.set(-10)
        maxDimen.set(500)
        step.set(0.5)
    }
    fontsRange {
        minDimen.set(10)
        maxDimen.set(60)
        step.set(1.0)
    }
}

Usar dimensiones escaladas

Después de generar los recursos xdimen (consulte la siguiente sección), puede usar los recursos dimens

   <TextView android:layout_width="@dimen/x100dp"    # width in design is 100dp
             android:layout_height="@dimen/x50_5dp"  # height in design is 50.5dp
             android:padding="@dimen/neg_x6_5dp"     # padding in design is -6.5dp
             android:textSize="@dimen/x12sp"         # textSize in design is 12sp
             />

Tareas

Para ejecutar una tarea, asegúrese de ejecutarla en un proyecto de Android usando una de estas formas

  • $ gradle :prjectName:taskName.
  • Desde la ventana de la herramienta gradle a continuación android grupo.
  • Desde Run AnyThing ventana.

generateXdimen

Genere recursos alternativos para cada ancho de dispositivo en targetDevicesWidth establecer y para cada calificador de recurso creado, cambie el tamaño para que se ajuste a este ancho. Use las propiedades configuradas para calcular un factor de escala, obtenga el rango de tamaño para generar y la lista de anchos de pantalla para alcanzar.

deleteXdimen

Elimine los recursos xdimen generados anteriormente a menos que haya cambiado el nombre del archivo o directorio res. se ejecutará primero generateXdimen si has configurado deleteOldXdimen propiedad de verdadero.

Propiedades de configuración

eliminarOldXdimen

Configurándolo cuando corres generateXdimen tarea deleteXdimen se ejecutará primero para eliminar todos los recursos xdimen generados previamente y sus directorios si el directorio contiene solo xdimen.xml expediente.

Si ha cambiado el nombre de la xdimen.xml archivo o su directorio por cualquier motivo, este archivo no se eliminará.

Valor por defecto: REAL.

ancho de diseño

El valor de ancho de pantalla de su diseño en dp unidad. se usará con designDpi para calcular el DesignWidth relativo (ancho relativo a la densidad principal mdpi) y luego calcule un factor de escala para cada ancho de pantalla en targetDevicesWidth.

Si tu diseño está en px establezca su ancho en esta propiedad y establezca designDpi ser – estar mdpi como en mdpi 1px = 1dp.

No tiene valor por defecto porque es obligatorio y hay que configurarlo.

diseñoDpi

La densidad de la pantalla de diseño (puntos por pulgada) Ver más. Esto se usará con designWidth para calcular su DesignWidth.

El valor predeterminado es: mdpi

Densidades por defecto: para cada densidad en densidades comunes hay un método con su nombre ( ldpi(), mdpi(), hdpi()… etc), también hay un método para establecer una densidad personalizada dpi(value).

targetDevicesWidth

El ancho de las pantallas de los dispositivos de destino. Para cada ancho de esta lista, se generará un recurso alternativo con dimensiones redimensionadas.

ej: si la lista es [350, 400] entonces

...
-> values/xdimen.xml            # Devices with screen-width less than 350dp.
-> values-w350dp/xdimen.xml     # 350dp <= screen-width < 400dp
-> values-w400dp/xdimen.xml     # screen-width >= 400dp
...

Puede usar un conjunto predeterminado tal como está, agregarlo o eliminarlo, o proporcionar su propio conjunto.

El valor predeterminado es: [designWidth] designWidth establecido proporcionó el valor.

Conjuntos predefinidos para dispositivos comunes:

  • phonePortrait: Teléfonos comunes con orientación vertical.
  • phoneLandscape: teléfonos comunes con orientación horizontal.
  • tabletPortrait: Tabletas comunes con orientación vertical.
  • tabletLandscape: tabletas comunes con orientación horizontal.

  • devicesInPortrait: Teléfonos comunes y tabletas verticalmente.
  • devicesInLandscape: teléfonos comunes y tabletas en horizontal.

Puede combinar varias listas de dispositivos, pero le recomiendo no apuntar tanto a la vertical como a la horizontal a menos que proporcione un diseño personalizado para la horizontal o el uso. disposición de la caja.

Estas listas se han recopilado de muchas fuentes: Wikipedia, Tamaño de pantalla, Pixensidad y otra.

rango de dimensiones

El rango de tamaño que desea generar y cambiar el tamaño.

  • minDimen: el tamaño mínimo para generar.
  • maxDimen: el tamaño máximo a generar.
  • step: el paso entre dos dimensiones generadas.

Valor por defecto: minDimensión = -10, maxDimen = 600, paso = 1.00.

rango de fuente

Igual que dimensRange pero para el rango de tamaño de fuente.

Valor por defecto: minDimensión = 6, MaxDimen = 48, paso = 1.00.

capturas de pantalla

Compruebe también

La actualización de CameraX hace que las cámaras duales simultáneas sean aún más fáciles

Publicado por Donovan McMurray – Ingeniero de relaciones con desarrolladores CámaraXLa biblioteca de cámaras Jetpack …

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *