关于android textview 中英文混合分行错误问题
来源:互联网 发布:python控制树莓派gpio 编辑:程序博客网 时间:2024/06/13 18:16
在中文英文混合时候textview 的分行就出现了错误
比如这样的字符串:宁静致远: adhadjjlskjlhfajfoiweuiddncxcnxchiosafjionjfdhvwureighbv cn vcvhtubfvcx,zjcxljclvhsdhfb 就出现了 问题 如下:
这里用 StaticLayout 来计算分行情况 计算的不对,打印如下:
说明Android 的分行计算方式出现了问题这里找到了一点资料:
http://blog.iamzsx.me/show.html?id=150001
但是在IOS 系统下就label中有 lb.lineBreakMode = NSLineBreakByCharWrapping; 这样的按字符来分行才能填充满每一行.
Android需要在API 23 以上才有IOS 这样的参数,具体代码如下
StaticLayout.Builder builder = StaticLayout.Builder.obtain(msg,0,msg.length(),tv.getPaint(),width); builder.setBreakStrategy(StaticLayout.BREAK_STRATEGY_BALANCED); StaticLayout staticLayout = builder.build();
可以设置Textview的内容对齐边界.
另外 利用Paint 来计算文字长度,
int line2length = tv.getPaint().breakText(msg,line1length,msg.length(),true,width,null);
但是只支持纯文字,不支持spannerable的文字,源码中直接把spannerable 转成string了:
而且在测量时候也不支持 spannerable 的测量..
参考:
http://tieba.baidu.com/p/4106306931
http://mikewang.blog.51cto.com/3826268/871765
http://www.eoeandroid.com/blog-578780-22865.html
https://developer.android.com/reference/android/text/StaticLayout.Builder.html
- 关于android textview 中英文混合分行错误问题
- 关于Textview maxline=1 ellipsize="end" 导致中英文数字混合分割错误的问题
- 关于Textview maxline=1 ellipsize="end" 导致中英文数字混合分割错误的问题
- C# 截取中英文混合字符串分行显示宽度相同
- 关于如何获取NSString的中英文混合字符长度问题
- 解决Android原生TextView显示中英文等末尾参差不齐问题
- 自定义控件解决android中TextView中英文换行问题
- 用word中的通配符处理中英文翻译的分行问题
- android联系人中英文混合排序
- android下中英文混合排序
- textview的分行显示
- 关于中英文混合字符串截取功能
- Android TextView图文混合编排
- 巧妙计算中英文混合的长度问题
- C#中英文混合字符串长度问题
- Android按名称排序,中英文混合排序
- android 开发:使得TextView文本左右两边都对齐--解决中英文对齐问题。
- JustifyTextView 解决TextView中英文混排排版问题,android文字排版不齐,
- Android如何在动画时将View移出父布局/如何将View显示在父布局外(android:clipChildren属性)
- hdu5532 Almost Sorted Array--最长上升子序列
- 数组元素替换
- 华为ME60常用维护命令
- 关闭_CRT_SECURE_NO_WARNINGS警告
- 关于android textview 中英文混合分行错误问题
- ajax实现异步任务
- light oj 1078 - Integer Divisibility
- AudioFlinger,AudioPolicyService and Audio track分析
- 单链表
- 瑞萨单片机教程(2013) -R8C系列 输入输出端口配置
- jase总结--10(数组)
- 在使用oracle中遇到的一些问题
- SDP Profile-level-id解析