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 establezcadesignDpi
ser – estarmdpi
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 personalizadadpi(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.