Estoy tratando de agregar un poco de espacio entre líneas a mis TextViews usando android:lineSpacingMultiplier
la documentación :
Espaciado adicional entre líneas de texto, como multiplicador.
Debe ser un valor de coma flotante, como "1.2".
Como estoy usando esto en algunas TextViews diferentes, me gustaría agregar una dimensión / valor global a mis recursos, pero no sé qué etiqueta usar, si es que existe. He probado todos los tipos de recursos que tienen sentido para mí, pero ninguno de ellos funciona.
Lo que me gustaría tener sería algo como esto:
<resources>
<dimen name="text_line_spacing">1.4</dimen>
</resources>
Editar: Soy consciente de android:lineSpacingExtra
(que necesita una dimensión con una unidad adjunta), pero me gustaría usar android:lineSpacingMultiplier
si es posible.
<item type="string" format="float" name="my_float">0.5</item>
y este código para recuperarlo:float my_float = Float.parseFloat (getResources ().getString (R.string.my_float));
<string>
etiqueta?Como se describe en este enlace http://droidista.blogspot.in/2012/04/adding-float-value-to-your-resources.html
Declarar en dimen.xml
Referencias desde xml
Referencias desde java
fuente
Todas las soluciones sugieren que utilice el valor flotante predefinido a través del código.
Pero en caso de que se pregunte cómo hacer referencia al valor flotante predefinido en XML (por ejemplo, diseños), el siguiente es un ejemplo de lo que hice y funciona perfectamente:
Defina valores de recursos como
type="integer"
peroformat="float"
, por ejemplo:Y luego úselas en su diseño usando
@integer/name_of_resource
, por ejemplo:fuente
<dimen>
También encontré una solución alternativa que parece funcionar bien sin advertencias:
Luego:
Advertencia : solo funciona cuando usa el dimen del código Java no del xml
fuente
type="fraction"
para evitar errores en el código JavaAgregue un flotador a dimens.xml:
<item format="float" name="my_dimen" type="dimen">1.2</item>
Para hacer referencia desde XML:
Para leer este valor mediante programación, puede usarlo
ResourcesCompat.getFloat
desde androidx.coreDependencia de Gradle:
implementation("androidx.core:core:${version}")
Uso:
fuente
También podemos usarlo para la guía del diseño de restricción.
Cree el archivo integer.xml y agréguelo a
Usar desde un archivo layout.xml
fuente
Usé un estilo para resolver este problema. El enlace oficial está aquí .
Cosas bastante útiles. Usted crea un archivo para contener sus estilos (como "styles.xml") y los define dentro de él. Luego, hace referencia a los estilos en su diseño (como "main.xml").
Aquí hay un estilo de muestra que hace lo que quieres:
Digamos que desea alterar un TextView simple con esto. En su archivo de diseño escribiría:
Pruébalo: así es como se hace toda la interfaz de usuario integrada en Android. Y mediante el uso de estilos, también tiene la opción de modificar todo tipo de otros aspectos de sus Vistas.
fuente
Si tiene flotantes simples que controla el rango, también puede tener un número entero en los recursos y dividir por el número de decimales que necesita directamente en el código.
Entonces algo como esto
se usa con 2 decimales
y eso lo hace 3.56f
No digo que esta sea la solución más elegante, pero para proyectos simples, es conveniente.
fuente
Encontré una solución, que funciona, pero resulta en un
Warning
(WARN/Resources(268): Converting to float: TypedValue{t=0x3/d=0x4d "1.2" a=2 r=0x7f06000a}
) en LogCat.fuente
Aunque he usado la respuesta aceptada en el pasado, parece que con las herramientas de compilación actuales es posible hacerlo:
Estoy usando Build Tools versión principal 29.
fuente