Android 文字對齊

開發過程中經常有上下行文字需要對齊問題。

比如 姓        名:

         身份證號:

常見的做法是在姓和名中間加上若干個空格來對齊。這種做法有缺陷,就是當字體變更時對空格的處理不一樣,可能就對不齊了。


另外一種做法就是在姓和名中間加上中文, 姓佔佔名。然後讓佔佔透明顯示就好了。寫了一個工具類的方法,使用很簡單,效果槓槓的。


 /**
     * 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;

    }


發佈了32 篇原創文章 · 獲贊 1 · 訪問量 5萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章