我正在尝试使用文档android:lineSpacingMultiplier 中的文本视图在行之间添加一点空间:
android:lineSpacingMultiplier
文本行之间的额外间距,作为乘数。 必须是浮点值,例如“1.2”。
文本行之间的额外间距,作为乘数。
必须是浮点值,例如“1.2”。
当我在几个不同的 TextViews 中使用它时,我想为我的资源添加一个全局维度/值,但我不知道要使用哪个标签,如果它甚至存在的话。我已经尝试了所有对我有意义的资源类型,但它们都不起作用。
我想要的是这样的:
<resources> <dimen name="text_line_spacing">1.4</dimen> </resources>
编辑:我知道android:lineSpacingExtra(需要一个带有附加单位的尺寸),但如果可能的话我想使用android:lineSpacingMultiplier。
android:lineSpacingExtra
有一个解决方案:
<resources> <item name="text_line_spacing" format="float" type="dimen">1.0</item> </resources>
这样,您的浮点数将在@dimen 下。请注意,您可以使用其他“格式”和/或“类型”修饰符,其中格式代表:
格式 = 封闭数据类型:
type 代表:
类型 = 资源类型(用 R.XXXXX.name 引用):
要从代码中获取资源,您应该使用以下代码段:
TypedValue outValue = new TypedValue(); getResources().getValue(R.dimen.text_line_spacing, outValue, true); float value = outValue.getFloat();
我知道这很令人困惑(您会期望 call like getResources().getDimension(R.dimen.text_line_spacing)),但 Androiddimensions有特殊处理,纯“浮点”数字不是有效维度。
getResources().getDimension(R.dimen.text_line_spacing)
dimensions
此外,还有一个小“hack”可以将浮点数放入维度,但请注意这 确实是 hack* , 您有可能失去浮点范围和精度。 *
<resources> <dimen name="text_line_spacing">2.025px</dimen> </resources>
从代码中,您可以通过
float lineSpacing = getResources().getDimension(R.dimen.text_line_spacing);
在这种情况下,值为,lineSpacing而2.024993896484375不是2.025您所期望的。
lineSpacing
2.024993896484375
2.025