No es tu layout, es el drawable

Drawables descentrados

A veces, nos encontramos con drawables vectoriales que no conseguimos que salgan centrados en nuestro diseño por más que modifiquemos el xml:
Layout con un texto y una imagen centrada incorrectamente a este.
Como puedes ver, la ImageView está centrada con android:layout_gravity="center_vertical" pero el contenido no lo está, a pesar de estar usando android:scaleType="centerInside". Cuando esto pase, debe saltarnos la alarma de que tal vez no es cosa de nuestro layout, ni del padding ni del scaleType, si no que lo que sucede es que el vector está descentrado en sí mismo. Es decir, que tenga espaciado de más por alguno de los lados y por eso sea imposible centrarlo. El espaciado es parte del vector y como tal, el dibujo está descentrado. Esto sucede porque el lienzo (viewport) mide una determinada anchura o altura pero el trazado dibujado en él no está centrado:
 
Drawable en el editor que está descentrado pero no se aprecia

Pero tal vez no lo apreciemos.

Podemos comprobar esto fácilmente pintando un recuadro bajo el dibujo, que ocupe todo el lienzo, añadiendo este elemento al vector: Este código hace lo siguiente (la letra representa qué acción quieres realizar, y los dos números son las coordenadas x e y de destino de la acción):
  • M 0,0: mueve el lápiz a la esquina superior izquierda.
  • L 120,0: pinta una línea hasta la esquina superior derecha.
  • L 120,120: pinta una línea hasta la esquina inferior derecha.
  • L 0,120: pinta una línea hasta la esquina inferior izquierda.
  • z: cierra el trazado (pinta una línea hasta las coordenadas en las que empezó el trazado).

Para utilizar este código en otro vector, solo tienes que sustituir el 120 por el valor de viewportWidth cuando esté en la posición de la x, y por el de viewportHeight cuando esté en la posición de la y.

Así quedaría el drawable:

Drawable con un recuadro blanco debajo que permite ver que está descentrado

Como puedes ver, el trazado no se está pintando en el centro del lienzo. Así que debes pedir a tu diseñador que vuelva a exportar el vector pero esta vez centrado.

Drawable en el editor con un fondo blanco, centrado
Imagen centrada respecto al texto correctamente
0 Comentarios

Contesta

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

*

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.

©2020 Codictados Comunidad libre para el aprendizaje de codigo Online

o

Inicia Sesión con tu Usuario y Contraseña

o    

¿Olvidó sus datos?

o

Create Account