这个问题很老,但刚刚为我找到了最佳解决方案:
我不得不说我正在用 Xamarin 编程,所以代码是用 C# 编写的,但移植到 java 中应该不是问题。
我使用 NHyphenator Logic ( https://github.com/alkozko/NHyphenator ) 插入 SoftHyphens(UTF8 Symbol - 0x00AD),因此 Textview 在正确的位置进行断字。
为了获得其他语言的连字符,我使用了 openoffice 词典。例如,我必须获得德语-瑞士语的连字符
http://extensions.openoffice.org/en/search?f[0]=field_project_tags%3A157
1. 下载扩展 2. 用winrar 或其他软件解压 3. 复制hyph_xx_xx/hyph_xx_xx.dic 文件 4. 添加新的连字符类的语言
NHyphernator 资源文件被声明为: hyph-xx-xx.pat.txt --> 没有注释的 dic 文件内容 hyph-xx-xx.hyp.txt --> 包含单词例外的文件,其中连字符的逻辑确实如此没有给出正确的结果
如果有人想要 Xamarin 的便携式库,请告诉我,我可以上传它。
编辑:
在 TEXtview 中,breakstrategy 应该设置为 Balanced。API 级别 > 23,否则不要使用中断策略。
编辑:
这是单声道/xamarin 代码:
https ://github.com/sma84/NHyphenator-Mono