前言
在计算机屏幕上,一个汉字要占两个英文字符的位置,把一个英文字符所占的位置称为"半角",相对地把一个汉字所占的位置称为"全角"。在汉字输入时,系统提供"半角"和"全角"两种不同的输入状态,但是对于英文字母、符号和数字这些通用字符就不同于汉字,在半角状态它们被作为英文字符处理;而在全角状态,它们又可作为中文字符处理。如果处理不好就影响Android的xml布局上文字的对齐.半角和全角切换方法:
定义
全角
全角指GB2312-80(《信息交换用汉字编码字符集·基本集》)中的各种符号,一个字符占用两个标准字符位置。一般的系统命令是不用全角字符的,只有在作文字处理时才会使用全角字符。
半角
半角是指英文件ASCII码中的各种符号,一字符占用一个标准的字符位置。通常的英文字母、数字键、符号键都是半角的,在系统内部作为基本代码处理的,所以用户输入命令和参数时一般都使用半角.
关系
全角状态下字母、数字符号等都会占两个字节的位置,也就是一个汉字那么宽,半角状态下,字母数字符号一般会占一个字节,也就是半个汉字的位置,全角半角下对汉字没有影响。
空格编码
  //中文全角空格,一个中文宽度
  //中文全角空格,一个中文宽度
\u3000 //中文全角空格,一个中文宽度
以上3种效果一样
  //半个中文宽度
\u0020 //半角空格
… //省略号...
  //普通的英文半角空格,但不换行
  //窄空格
使用方法
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="姓  名"
android:textSize="30sp" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="电子邮箱"
android:textSize="30sp" />
效果如下:

全角半角字符转换
- 单击输入法工具条上的按钮或按键盘上的Shift+Space键来切换。
- 代码转换,代码如下:
转半角
/**
全角空格为12288,半角空格为32
其他字符半角(33-126)与全角(65281-65374)的对应关系是:均相差65248
* @param input 任意字符串
* @return 半角字符串
*
*/
public static String ToDBC(String input) {
char[] c = input.toCharArray();
for (int i = 0; i < c.length; i++) {
if (c[i] == 12288) {
//全角空格为12288,半角空格为32
c[i] = (char) 32;
continue;
}
if (c[i] > 65280 && c[i] < 65375)
//其他字符半角(33-126)与全角(65281-65374)的对应关系是:均相差65248
c[i] = (char) (c[i] - 65248);
}
return new String(c);
}
转全角
/**
全角空格为12288,半角空格为32
其他字符半角(33-126)与全角(65281-65374)的对应关系是:均相差65248
* @param input 任意字符串
* @return 半角字符串
*
*/
public static String ToSBC(String input) {
char[] c=input.toCharArray();
for (int i = 0; i < c.length; i++)
{
if (c[i]==32)
{
c[i]=(char)12288;
continue;
}
if (c[i]<127)
c[i]=(char)(c[i]+65248);
}
return new String(c);
}
Android全角半角字符处理与空格对齐

本文介绍了全角和半角字符在Android中的应用,特别是在XML布局中影响文字对齐的问题。全角字符占用两个字符位置,而半角字符只占一个。在处理空格编码时,提供了相应的使用方法,并详细讲解了如何进行全角到半角、半角到全角的转换。通过切换输入法或使用特定代码可以实现转换。
7378

被折叠的 条评论
为什么被折叠?



