您的位置:首页 > 其它

textview中显示的文本无法对齐

2016-01-19 10:22 169 查看
<string name="fwrx">
\t\t\t\t\t\t\t\t\t\t总台:4100\n
翠月会场服务台:4288\n
\t\t银杏园服务台:4600\n
\t\t翠华楼服务台:4800\n
\t\t得月楼服务台:4700\n
\t\t金竹园服务台:4350\n
\t\t丹桂园服务台:4200\n
\t\t紫薇园服务台:4031\n
\t\t紫竹园服务台:4039\n
\t\t\t\t鹤苑服务台:4900\n
\t\t\t\t\t\t翠月餐厅:4406\n
\t\t\t\t\t\t运动中心:4552\n
\t\t\t\t\t\t商务中心:4881\n
\t\t\t\t\t\t购物中心:4532\n
\t\t\t\t\t\t安全保卫:4558(24小时值班)\n
\t\t\t\t\t\t\t\t医务室:4120(24小时值班)\n
\t\t\t\t\t\t\t\t洗衣房:4253\n
从外部拨打管理培训中心电话:\n
系统内线:848+4位分机号码\n
\t\t\t\t外线:028-8719+4位分机号码</string>

如上字符串,在textview中显示希望以“:”来对齐,我们根据\t\t两个字符为一个汉子来计算,最终界面显示的结果却是前后不一致的,这里造成TextView排版内容显示不整齐的原始是因为半角字符和全角字符混用,这样的情况一般是汉字与数字、英文字母混用的结果

这里采用一个很简单的思路,既然是因为半角字符和全角字符混用导致的,那么可以将要实现的内容同一一下字符编码,网上可以找到的方法是将字符全部转换为全角字符

/**
* 针对TextView显示中文中出现的排版错乱问题,通过调用此方法得以解决
* @param str
* @return 返回全部为全角字符的字符串
*/
public static String toDBC(String str) {
char[] c = str.toCharArray();
for (int i = 0; i < c.length; i++) {
if (c[i] == 12288) {
c[i] = (char) 32;
continue;
}
if (c[i] > 65280 && c[i] < 65375) {
c[i] = (char) (c[i] - 65248);
}

}
return new String(c);
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: