我试图添加一个小的行之间的空间到我的TextViews使用android:lineSpacingMultiplier
从文档中可以看到:
文本行与行之间的额外间距,
作为乘数。
必须是浮点值,比如
“1.2”。
因为我使用这在几个不同的TextViews,我想添加一个全局维度/值到我的资源,但我不知道使用哪个标签,如果它甚至存在。
我尝试了所有对我有意义的资源类型,但没有一个有用。
我想要的是这样的:
<resources>
<dimen name="text_line_spacing">1.4</dimen>
</resources>
编辑:我知道android:lineSpacingExtra(需要一个附加单位的维度),但我想使用android:lineSpacingMultiplier如果可能的话。
在dimensions .xml中添加一个浮点数:
<项目格式=“浮点数” 名称=“my_dimen” 类型=“dimen”>1.2</item>
从XML引用:
<EditText
android:lineSpacingMultiplier="@dimen/my_dimen"
...
要以编程方式读取这个值,可以使用ResourcesCompat。getFloat从androidx.core
Gradle依赖性:
实现(“androidx.core:核心:$ {version}”)
用法:
import androidx.core.content.res.ResourcesCompat;
...
float value = ResourcesCompat.getFloat(context.getResources(), R.dimen.my_dimen);
我还发现了一个没有警告的变通方法:
<resources>
<item name="the_name" type="dimen">255%</item>
<item name="another_name" type="dimen">15%</item>
</resources>
然后:
// theName = 2.55f
float theName = getResources().getFraction(R.dimen.the_name, 1, 1);
// anotherName = 0.15f
float anotherName = getResources().getFraction(R.dimen.another_name, 1, 1);
警告:它只在从Java代码中使用dimen而不是从xml中使用dimen时有效