我使用spannable在2行中创建一个字符串,每行都有不同的字体 除了一件事,它工作得很好 如何在第一个字符串和第二个字符串之间添加一些边距?
所以我这样做:
String a = "First line";
String b = "Second line";
SpannableString spannableName = new SpannableString(a + "\n" + b);
spannableName.setSpan(new TextAppearanceSpan(activity, R.style.my_style),0,a.length(), 0);
和my_style
<style name="my_style">
<item name="android:layout_marginBottom">100dp</item>
<item name="android:paddingBottom">10dp</item>
<item name="android:textSize">@dimen/size</item>
<item name="android:textColor">@color/mycolor</item>
</style>
我做错了什么?
我希望a
和b
之间有一些填充/边距
我的风格中的填充/边距很大,因为我不确定它们是否被应用(测试数字)
答案 0 :(得分:5)
以下是使用RelativeSizeSpan:
执行此操作的方法String a = "First line";
String b = "Second line";
SpannableString spannableName = new SpannableString(a + "\n" + b);
spannableName.setSpan(new TextAppearanceSpan(activity, R.style.my_style),0,a.length(), 0);
spannableName.setSpan(new RelativeSizeSpan(1.5f), a.length(), a.length() + 1, 0);
RelativeSizeSpan将使&#34; \ n&#34;字符1.5大于&#34; a&#34;和&#34; b&#34;字符串。
答案 1 :(得分:2)
这必须是您正在使用的UI控件的属性。
我假设您将文本设置为TextView
。您可以使用textView.setLineSpacing(addvalue, multiplyValue)
。这会将addValue
单位添加到间距并将其乘以multiplyValue
次。
同样,如果您希望通过样式进行设置,则可以将这些值添加到您的样式中:
<item name="android:lineSpacingExtra">SoemDPValue</item>
<item name="android:lineSpacingMultiplier">someNumber</item>