android中如果需要将字符在两行TextView中进行显示时字符过长问题?
16lz
2021-01-25
问题引导:在Android中,使用TextView来显示文字,如果所有文字都在一行显示时,那么当文字过长的时候, 1:如果不加设置则出现的现象是,显示不全; 2:如果设置android:singline = “true”, 则过长时,会自动将文字的后面较长的部分替换为省略号 问题:如果我们需要在两行来显示文字,那么文字过长的时候怎么办? 想法:既然长了就替换啊,省略号搞起。。 public static void 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的结果就是字符个数,这个与字符类型无关。 好像这是常识?然后问题来了,不同的字符在显示的时候占用的空间完全不同,数字偏小,标点的站位更是乱。我们想要知道某个字符串占用了多少空间,直接使用其总长度来估算是不准确的。此时,需要对字符串中各个字符按照数字,英文字符,汉字,标点类型进行分组。
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的结果就是字符个数,这个与字符类型无关。 好像这是常识?然后问题来了,不同的字符在显示的时候占用的空间完全不同,数字偏小,标点的站位更是乱。我们想要知道某个字符串占用了多少空间,直接使用其总长度来估算是不准确的。此时,需要对字符串中各个字符按照数字,英文字符,汉字,标点类型进行分组。
更多相关文章
- 分支和循环(二)(零基础学习C语言)
- Android开发——EditText编辑框设计一个登录页面
- Android(安卓)Studio中Button等控件的Text属性英文默认大写的解
- 关于EditText的android:maxLength属性的注意事项
- 猫猫学iOS之二维码学习,快速生成二维码
- android staticlayout使用讲解
- Android(安卓)ellipsize的小问题
- Android中使用GSON包解析JSON数据(复杂JSON)
- 【String.xml】修改Android中strings.xml文件, 动态改变数据