Android TextView显示中文不对齐问题

来源:互联网 发布:带着淘宝去异界 微盘 编辑:程序博客网 时间:2024/05/01 20:56

在最近迭代的版本中,根据测试的反馈,说有些内容显示很不整齐,会给用户体验带来不好的影响,比如有些行还有可以现实很多内容的,但是却无缘无故换行了。其实这在我看来不是什么大问题,但是既然测试要把这个当做bug来处理,一直关注产品bug的我是必须要解决这个问题的。

原理

造成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);}

补充知识

全角: 指一个字符占用两个标准的字符位置

半角: 指一个字符占用一个标准的字符位置

汉字字符和规定了全角的英文字符以及国际GB2312-80中得图形符号和特殊字符都是全角字符,系统命令是不用全角字符的。

通常的英文字母、数字键、符号键都是半角的。

全角占两个字节,半角占一个字节。

http://blog.naiyu.me/textview-show-chinease/

0 0
原创粉丝点击