首页 > 技术文章 > android中如果需要将字符在两行TextView中进行显示时字符过长问题?

weilf 2015-04-14 17:22 原文

问题引导:在Android中,使用TextView来显示文字,如果所有文字都在一行显示时,那么当文字过长的时候,
     1:如果不加设置则出现的现象是,显示不全;
     2:如果设置android:singline = “true”, 则过长时,会自动将文字的后面较长的部分替换为省略号
 
问题:如果我们需要在两行来显示文字,那么文字过长的时候怎么办?
想法:既然长了就替换啊,省略号搞起。。
 
 
publicstaticvoid main(String[] args) {
String str1 =
"c"; // 英文字符  1
String str2 =
"1"; // 数字      1
String str3 =
"你"; // 汉字     1
String str4 =
"c1"; // 组合     2
String str5 =
","// 英文标点  1
String str6 =
","// 中文标点 1

System.
out.println(str1 + " : " + str1.length());
System.
out.println(str2 + " : " + str2.length());
System.
out.println(str3 + " : " + str3.length());
System.
out.println(str4 + " : " + str4.length());
System.
out.println(str5 + " : " + str5.length());
System.
out.println(str6 + " : " + str6.length());
}
 
     上面是对各种不同类型的字符类型在Java String中的长度测试,结果是所有的类型当个字符都是1。恩,也就是说string.length的结果就是字符个数,这个与字符类型无关。
     好像这是常识?然后问题来了,不同的字符在显示的时候占用的空间完全不同,数字偏小,标点的站位更是乱。我们想要知道某个字符串占用了多少空间,直接使用其总长度来估算是不准确的。此时,需要对字符串中各个字符按照数字,英文字符,汉字,标点类型进行分组。
 
 
 
 
 
 
 

推荐阅读