我创建了一个自定义textview类,我使用BackgroundColorSpan在后台应用颜色。如何在每行之前和之后添加空格。我真的很感激任何帮助。
final String test_str1 = "Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book.";
public class CustomTextView extends TextView {
public CustomTextView(Context context) {
super(context);
setFont();
}
public CustomTextView(Context context, AttributeSet attrs) {
super(context, attrs);
setFont();
}
public CustomTextView(Context context, AttributeSet attrs, int defStyle) {
super(context, attrs, defStyle);
setFont();
}
private void setFont() {
Typeface font = Typeface.createFromAsset(getContext().getAssets(), "fonts/TEXT.ttf");
setTypeface(font, Typeface.NORMAL);
Spannable myspan = new SpannableString(getText());
myspan.setSpan(new BackgroundColorSpan(0xFF757593), 0, myString.length(), Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
txtview.setText(myspan);
}
}
答案 0 :(得分:0)
不只是简单地在Java中追加或添加带有空格的字符串。在第一个实例中,您应该寻找一个可以为您完成的库。
我发现Apache Commons Lang是一个很好的字符串操作。它具有类StringUtils,具有以下方法:
public static String appendIfMissing(String str, CharSequence suffix, CharSequence... suffixes)
如果字符串尚未以任何后缀结尾,则将后缀附加到字符串的末尾。public static String prependIfMissing(String str, CharSequence prefix, CharSequence... prefixes) 如果字符串尚未以任何前缀开头,则将前缀添加到字符串的开头。
String
上的两个操作都是空安全的。
Linking the library对您的项目很简单。如果您使用Gradle,只需将此行添加到依赖项
dependencies {
...
compile 'org.apache.commons:commons-lang3:3.4'
}
答案 1 :(得分:0)
另一种选择是使用JDK。 String.format()
可用于左/右填充给定字符串。
public static String padRight(String s, int n) {
return String.format("%1$-" + n + "s", s);
}
public static String padLeft(String s, int n) {
return String.format("%1$" + n + "s", s);
}
public static String pad(String s, int n) {
return padRight(padLeft(s, n), n);
}
// Usage example
String myString = getText().toString();
Spannable myspan = new SpannableString(pad(myString, 1));
myspan.setSpan(new BackgroundColorSpan(0xFF757593), 0, myString.length(), Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
txtview.setText(myspan);
参考文献: