J'essaie d'ajouter un peu d'espace entre les lignes à mes TextViews en utilisant android:lineSpacingMultiplier
la documentation :
Espacement supplémentaire entre les lignes de texte, comme multiplicateur.
Doit être une valeur à virgule flottante, telle que "1,2".
Comme j'utilise cela dans plusieurs TextViews différentes, je voudrais ajouter une dimension / valeur globale à mes ressources, mais je ne sais pas quelle balise utiliser, si elle existe. J'ai essayé tous les types de ressources qui me conviennent, mais aucun ne fonctionne.
Ce que j'aimerais avoir serait quelque chose comme ceci:
<resources>
<dimen name="text_line_spacing">1.4</dimen>
</resources>
Edit: je suis au courant android:lineSpacingExtra
(qui a besoin d'une dimension avec une unité ajoutée), mais je voudrais utiliser android:lineSpacingMultiplier
si possible.
<item type="string" format="float" name="my_float">0.5</item>
et ce code pour le récupérer:float my_float = Float.parseFloat (getResources ().getString (R.string.my_float));
<string>
balise?Comme décrit dans ce lien http://droidista.blogspot.in/2012/04/adding-float-value-to-your-resources.html
Déclarez dans dimen.xml
Référencement depuis xml
Référencement depuis Java
la source
Toutes les solutions vous suggèrent d'utiliser la valeur flottante prédéfinie via le code.
Mais au cas où vous vous demandez comment référencer la valeur flottante prédéfinie en XML (par exemple, les mises en page), voici un exemple de ce que j'ai fait et cela fonctionne parfaitement:
Définissez les valeurs de ressource comme
type="integer"
maisformat="float"
, par exemple:Et utilisez-les plus tard dans votre mise en page en utilisant
@integer/name_of_resource
, par exemple:la source
<dimen>
J'ai également trouvé une solution de contournement qui semble fonctionner correctement sans avertissement:
Ensuite:
Attention : cela ne fonctionne que lorsque vous utilisez le dimen du code Java et non du xml
la source
type="fraction"
pour éviter les erreurs dans le code JavaAjoutez un flottant à dimens.xml:
<item format="float" name="my_dimen" type="dimen">1.2</item>
Pour référencer à partir de XML:
Pour lire cette valeur par programme, vous pouvez utiliser à
ResourcesCompat.getFloat
partir de androidx.coreDépendance Gradle:
implementation("androidx.core:core:${version}")
Usage:
la source
Nous pouvons également l'utiliser pour guider la disposition des contraintes.
Créez un fichier integer.xml et ajoutez-le à
Utiliser à partir d'un fichier layout.xml
la source
J'ai utilisé un style pour résoudre ce problème. Le lien officiel est ici .
Des trucs assez utiles. Vous créez un fichier pour contenir vos styles (comme "styles.xml"), et les définissez à l'intérieur. Vous référencez ensuite les styles dans votre mise en page (comme "main.xml").
Voici un exemple de style qui fait ce que vous voulez:
Disons que vous souhaitez modifier une simple TextView avec cela. Dans votre fichier de mise en page, vous devez taper:
Essayez-le - c'est essentiellement ainsi que se fait toute l'interface utilisateur intégrée sur Android. Et en utilisant des styles, vous avez également la possibilité de modifier toutes sortes d'autres aspects de vos vues.
la source
Si vous avez des flottants simples dont vous contrôlez la plage, vous pouvez également avoir un entier dans les ressources et diviser par le nombre de décimales dont vous avez besoin directement dans le code.
Donc quelque chose comme ça
est utilisé avec 2 décimales
et cela fait 3,56f
Cela ne veut pas dire que c'est la solution la plus élégante mais pour les projets simples, c'est pratique.
la source
J'ai trouvé une solution qui fonctionne, mais qui aboutit à un
Warning
(WARN/Resources(268): Converting to float: TypedValue{t=0x3/d=0x4d "1.2" a=2 r=0x7f06000a}
) dans LogCat.la source
Bien que j'aie utilisé la réponse acceptée dans le passé, il semble qu'avec les outils de construction actuels, il est possible de faire:
J'utilise Build Tools version principale 29.
la source