El arsenal de Android: complementos de Gradle

Admite fácilmente múltiples tamaños de pantalla escalando sus dimensiones.

Contenidos

¿Cómo funciona Xdimen?

Si tiene un diseño de interfaz de usuario con una dimensión específica y necesita admitir diferentes teléfonos o tabletas en modo vertical u horizontal. Este caso Xdim puede ayudarlo a generar dimensiones escalables para los tamaños de pantalla de los dispositivos más populares.

Xdimen genera un directorio res alternativo para cada ancho de pantalla común (configurable) y escala las dimensiones de su diseño.

Los recursos XML se generan utilizando el generador XML de Kotlin

Puede encontrar más información sobre Xdimen aquí

propósito de 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 necesario. 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 recursos xdimen (consulte la siguiente sección), puede usar las dimensiones

   <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 de una de estas maneras

  • $ gradle :prjectName:taskName.
  • Desde la ventana de la herramienta Gradle a continuación android Grupo.
  • Fuera de Run AnyThing Ventana.

generateXdimen

Genera recursos alternativos para cada ancho de dispositivo en targetDevicesWidth está configurado y para cada identificador de recurso creado, las dimensiones se escalan para que coincidan con ese ancho. Utiliza propiedades configuradas para calcular un factor de escala, obtener el rango de dimensiones para generar y la lista de anchos de pantalla de destino.

deleteXdimen

Elimine los recursos xdimen generados anteriormente a menos que haya cambiado el nombre del archivo o directorio res. Se ejecutará de antemano generateXdimen si contratas deleteOldXdimen propiedad por verdadero.

propiedades de configuración

eliminarOldXdimen

Configurándolo en tiempo de ejecución generateXdimen tarea deleteXdimen se ejecuta primero para eliminar todos los recursos xdimen generados previamente y sus directorios si el directorio solo contiene xdimen.xml Archivo.

Si cambió el nombre de la xdimen.xml archivo o su directorio por cualquier motivo, este archivo no se elimina.

Valor por defecto: verdadero.

ancho de diseño

El valor del ancho de pantalla de tu tema en dp Unidad. se usa con designDpi para calcular el ancho de diseño 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á incluido px establezca su ancho en esta propiedad y establezca designDpi ser – estar mdpi como en mdpi 1px = 1dp.

Sin valor predeterminado, ya que es obligatorio y debe configurarse.

diseñoDpi

Para densidad de pantalla de diseño (puntos por pulgada), vea más. Esto se usa con designWidth para calcular el ancho de diseño relativo.

El valor predeterminado es: mdpi

Densidades Predefinidas: Para cada densidad en densidades comunes hay un método por su nombre ( ldpi(), mdpi(), hdpi()… etc.) Además, hay un método para establecer una densidad personalizada dpi(value).

targetDevicesWidth

El ancho de las pantallas de los dispositivos a los que apunta. Se genera un recurso alternativo con dimensiones escaladas para cada ancho en esta lista.

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 predefinido tal cual, agregarlo o eliminarlo, o proporcionar su propio conjunto.

El valor predeterminado es: [designWidth] conjunto de valor proporcionado designWidth.

Conjuntos predefinidos para dispositivos comunes:

  • phonePortrait: teléfonos comunes en modo retrato.
  • phoneLandscape: teléfonos comunes en modo horizontal.
  • tabletPortrait: tabletas comunes en modo retrato.
  • tabletLandscape: tabletas comunes en modo horizontal.

  • devicesInPortrait: Teléfonos y tabletas comunes en modo vertical.
  • devicesInLandscape: Teléfonos y tabletas comunes en modo horizontal.

Puede combinar varias listas de dispositivos, pero le recomiendo que no apunte a la orientación vertical y horizontal a menos que proporcione un diseño horizontal personalizado o utilice el diseño del panel.

Estas listas se recopilaron de muchas fuentes: Wikipedia, ScreenSize, Pixensity y otras.

rango de dimensiones

El rango de dimensiones que desea generar y escalar.

  • minDimen: el mínimo a generar.
  • maxDimen: la dimensión máxima a generar.
  • step: el paso entre dos dimensiones generadas.

Valor por defecto: Dimensión mínima=-10, maxDimens = 600, Paso = 1.00.

rango de fuentes

lo mismo de dimensRange pero para las dimensiones de la fuente son suficientes.

Valor por defecto: Dimensión mínima = 6, dimensión máxima=48, Paso = 1.00.

capturas de pantalla

Deja una respuesta

Tu dirección de correo electrónico no será publicada.