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); }
相关文章推荐
- MySQL学习9_ CentOS下如何完全卸载MySQL?
- Selenium浏览器自动化测试使用(1)
- angular js 事件
- VMware安装64位操作系统提示Intel VT-x处于禁用状态的解决办法
- cocos2dx2.0 帧动画的创建和播放过程 深入分析
- mysql常用命令
- Ubuntu 14.04下给PDF添加注释
- 哈夫曼树以及哈夫曼编码的创建
- Android Google Map学习一(获取最近一次的位置)
- MSSQLserver中用convert函数转换日期格式
- 表单元素 开篇
- align="absmiddle" 的意义
- MyBatis(增删改查)
- 判断js对象的数据类型,有没有一个最完美的方法?
- vs2010调试技巧
- 华为oj 汽水瓶
- CentOS上安装Docker
- CISCO ACL 增删改
- Android 用adb pull或push 拷贝手机文件到到电脑上,拷贝手机数据库到电脑上,拷贝电脑数据库到手机上
- calerdar的使用