開發過程中經常有上下行文字需要對齊問題。
比如 姓 名:
身份證號:
常見的做法是在姓和名中間加上若干個空格來對齊。這種做法有缺陷,就是當字體變更時對空格的處理不一樣,可能就對不齊了。
另外一種做法就是在姓和名中間加上中文, 姓佔佔名。然後讓佔佔透明顯示就好了。寫了一個工具類的方法,使用很簡單,效果槓槓的。
/**
* 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;
}