开发过程中经常有上下行文字需要对齐问题。
比如 姓 名:
身份证号:
常见的做法是在姓和名中间加上若干个空格来对齐。这种做法有缺陷,就是当字体变更时对空格的处理不一样,可能就对不齐了。
另外一种做法就是在姓和名中间加上中文, 姓占占名。然后让占占透明显示就好了。写了一个工具类的方法,使用很简单,效果杠杠的。
/**
* desc: 如果有多个地方要加则反复调用几次该方法就行
* <p>
* 创建人:qingchen, 2014-2-24 下午2:26:21
* </p>
* start从0开始即在最前端增加占位符。start==end时表示插入一个如果0,则在开头插入一个,如果
* start=0,end=1则在开头添加两个占位符
* start不能大于字符串的长度,end则可以打印字符串的长度
* @param text 要加占位符的字符串
* @param start 开始
* @param end 结束
* @return 添加好透明占位符的字符串
*/
public static SpannableString getAlignText(String text, int start, int end) {
if (text == null || start < 0 || start < end||start>text.length()) {
return null;
}
StringBuffer sb = new StringBuffer(text);
for (int i = start; i <= end; i++) {
sb.insert(i, "占");
}
SpannableString sp = new SpannableString(sb.toString());
sp.setSpan(new ForegroundColorSpan(Color.TRANSPARENT), start, end,
Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
return sp;
}