本文由 发布,转载请注明出处,如有问题请联系我们! 发布时间: 2021-08-01textview自动换行属性-安卓textview提前换行
加载中实际上在TextView中,碰到排版设计和自动换行导致的错乱是很普遍的,导致这个问题的缘故是英语和汉语混合使用,半角字符和全角字符混合使用。英语中的数据,英文字母,标点一般全是半角字符,因此占用量没法明确。他们有别于中国汉字的团块。因而,许多标识符的排版设计不是匀称的。
寻找缘故,当然就来了。一般有这两种方式能够化解这个问题。
1.使文字主视图中的标识符彻底有视角。即把全部的数据,英文字母,标点符号转化成全角字符,使其与中国汉字同用2个字节数,防止了因占有室内空间而导致的排印错乱。
将半宽变换为全宽的编码如下所示:
/**
*半角到全角。
*
* @param str
* @回到
*/
公共性静态数据字符串数组ToDBC(字符串数组字符串数组){ 0
char[]c = str . tochararray();
for(int I = 0;i < c .长短;i ){ 0
if (c[i] == 12288) {
c[I]=(char)32;
再次;
}
if (c[i] > 65280 && c[i] < 65375)
c[I]=(char)(c[I]–65248);
}
回到新字符串数组(c);
}
2.删掉特殊符号或将全部汉语标识更换为英语标识。全部特殊符号用正则表达式过虑,汉语标识用英文标识替代。
/**
*删掉特殊符号或将全部汉语标识更换为英语标识。
*
* @param str
* @回到
*/
公共性静态数据字符串数组过滤装置
str = str.replaceAll("【","[")。replaceAll(" 】","]")
。replaceAll("!", "!").replaceAll(":,":);//更换汉语标识。
string RegEx = "[㎡]";//删掉特殊符号。
pattern p = pattern . compile(RegEx);
matcher m = p . matcher(str);
回到m.replaceAll(" ")。trim();
}
编码不易,假如你没吝啬一切不便,请帮助分享一下,感谢。
著名移动互联权威专家,自媒体人,微信账户中的“無名程序猿”经营,每日共享一项原創技术性和移动互联专业知识。微信官方网账户:smart_android,今日头条号和度娘的100个账户全是“不知名的程序猿”。