android:text="Texto muy largo.\nCon más de una línea."
android:textColor="#000000"
android:textSize="@dimen/sp12" />
</LinearLayout>
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:
Podemos comprobar esto fácilmente pintando un recuadro bajo el dibujo, que ocupe todo el lienzo, añadiendo este elemento al vector:
XHTML
1
2
3
4
5
<path
android:strokeColor="#FF000000"
android:fillColor="#FFFFFF"
android:strokeWidth="1"
android:pathData="M 0,0 L 120,0 L 120,120 L 0,120 z"/>
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.
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.