Mtk在JB版本引入了这种机制,如果想去掉圈圈这种机制,可以按照如下方法:

泰语:

JB、JB2版本:

external\harfbzz\src\harfbuzz-thai.c

注释如下代码

about line 418

case tR:

//        charIndex[(*outputIndex)] = inputIndex;

//        outputBuffer[(*outputIndex)++] = errorChar;

charIndex[(*outputIndex)] = inputIndex;

outputBuffer[(*outputIndex)++] = currChar;

break;

about line 426

case tS:

//        if (currChar == CH_SARA_AM) {

//            charIndex[(*outputIndex)] = inputIndex;

//            outputBuffer[(*outputIndex)++] = errorChar;

//        }

charIndex[(*outputIndex)] = inputIndex;

outputBuffer[(*outputIndex)++] = currChar;

break;

JB3、JB5版本由于变形引擎不同,默认是不带圈圈的,如果想使用这种机制,可以修改:frameworks/base/core/jni/android/graphics/TextLayoutCache.cp

about line 820

switch (script) {

case HB_SCRIPT_MYANMAR:

return &GraphiteLayoutShaper::getInstance();

case HB_SCRIPT_BENGALI:

case HB_SCRIPT_THAI:  新增此句   harfbuzzShaper.setShapingScript(getHBScriptFromHBNgScript(script));

return &harfbuzzShaper;

default:

harfbuzzNgShaper.setShapingScript(script);

return &harfbuzzNgShaper;

}

缅甸语:

JB、JB2版本:

external\harfbzz\src\harfbuzz-myanmar.c

注释如下代码就行,一共有三处。

//      reordered[len] = Mymr_C_DOTTED_CIRCLE;

//      len += 1;

JB3、JB5版本由于变形引擎不同,默认是不带圈圈的,如果想使用这种机制,可以修改:frameworks/base/core/jni/android/graphics/TextLayoutCache.cp

about line 820

switch (script) {

case HB_SCRIPT_MYANMAR:

// return &GraphiteLayoutShaper::getInstance();注释此句

case HB_SCRIPT_BENGALI:

harfbuzzShaper.setShapingScript(getHBScriptFromHBNgScript(script));

return &harfbuzzShaper;

default:

harfbuzzNgShaper.setShapingScript(script);

return &harfbuzzNgShaper;

}

需要注意的是,去掉圈圈机制可以会导致一些字符变形问题,如连续输入上下标、母音等字符,后面的字将不断往前面的字上面叠。同时由于该solution没能做严格的测试,而有可能存在其他潜在的风险。在不能单独存在的字符单独出现时去除虚线圈的做法,并不合理,并可能存在其他问题。如果要去掉,需要评估风险。

另外缅甸语比较特殊、缅甸语有官方和民间之分,二者不同的是编码机制不同,因此这2种缅甸语的字串翻译、处理引擎、字库都是不同的。如果遇到问题可以先按照如下方法排查:

1、       如果字串中出现一个圈圈可能是个别字串翻译问题,可以参考FAQ09106解决。

2、       如果浏览网页或者界面中出现大量圈圈、这可能是网页内容或者翻译和字库不匹配导致。如大多缅甸语网站是民间缅甸语的,如果使用官方的缅甸语引擎和字库访问的话,就会出现这个问题。

目前mtk仅仅支持官方的缅甸语,如果要支持民间缅甸语,通过简单修改(修改翻译、替换字库)存在诸多风险,需要自行评估或者咨询mtk工程师。

android缅甸语,Android 泰语、缅甸语等复杂语言圈圈问题相关推荐

  1. Android 泰语、缅甸语等复杂语言圈圈问题

    前言          欢迎大家我分享和推荐好用的代码段~~ 声明          欢迎转载,但请保留文章原始出处:          CSDN:http://www.csdn.net        ...

  2. 默认语言及Android平台语言支持状态(印度语)Android N 设置中语言列表介绍

    6.0及之前修改路径 device\company\{sub_project_name}/full_{sub_project_name}.mkc PRODUCT_LOCALES := es_US en ...

  3. android drawableleft 垂直居中,Android TextView前加图标垂直居中第一行(仿大众点评购买须知/提示语)...

    如上图,需求在每条提示语句前加一个小圆点,我刚看到需求就想到用 android:drawableLeft 来作,可作完发现:当TextView内容为单行的时候是没有问题的,多行的时候,添加的这个dra ...

  4. android多语言希伯来语,希伯来语APP

    希伯来语APP是希伯来语教学APP.为想要学习本门语言的学员提供免费的教学课程,学员可以随时在线学习,并且APP采用寓教于乐的学习方式,为学员打造了一个轻松简单的学习环境,让学员爱上学习. 主要特性 ...

  5. android 泰文ttf字体,如何在Android上正确显示泰语diactirics?

    简短的序言.泰语字母有可能出现在辅音上方的元音符号,并且在辅音上方也存在变音符号(DS).当元音和DS出现时,它们出现一个在另一个之上,所以元音被设置在辅音之上并且DS被设置在元音之上.如何在Andr ...

  6. android 检测电话号码,Android 9能在文本中精准检测地址和号码,是这样做到的

    8月10日消息,据国外媒体报道,谷歌本周发布了最新版的移动操作系统Android Pie,其中的亮点功能之一就是Smart Linkify.这是一个应用程序编程接口,可在文本中检测到地址.电话号码和其 ...

  7. android xml文件格式,android xml 资源文件中几个格式(@ ? @* @+)的含义

    一.@代表引用资源 1.引用自定义资源.格式:@[package:]type/name android:text="@string/hello" 2.引用系统资源.格式:@andr ...

  8. android 如何使用android:supportsRtl属性

    今天,简单讲讲android里如何使用 AndroidManifest文件里的android:supportsRtl属性.  之前,在app上发现一个问题,就是app设置为阿拉伯语时,手机默认德我 ...

  9. android tools ignore,android tools属性引用

    利用tools命名空间,android studio支持很多XML属性,当构建app时这些属性会被擦除,对APK的大小和运行时行为没有任何影响.请看官网. tools属性大致可以分为三类:1,错误处理 ...

  10. 鸟人的Android揭秘(3)——Android 编译环境搭建

    一.主机环境要求 要顺利编译 Android 源代码,硬件环境和操作系统都必须满足一定的条件.官方推荐的硬件环境配置是: 编译 Gingerbread(2.3.x)及后续版本必须使用64位系统 需至少 ...

最新文章

  1. Windows Azure Storage (25) Azure Append Blob
  2. 机器学习(MACHINE LEARNING) 【周志华版-”西瓜书“-笔记】 DAY3-线性模型
  3. mysql 实现nextval_mysql实现nextVal功能
  4. 自己也遇到了-db_recovery_file_dest_size 修改大一点
  5. kernel-devel
  6. ubuntu安装chrome driver
  7. SpringCloud Ribbon(一)之自定义负载均衡器ILoadBalancer
  8. 排序系列【比较排序系列之】直接插入排序
  9. 【我的相册】2018.2.15-年夜饭
  10. linq to json
  11. 三分钟了解Activity工作流
  12. 渥太华大学计算机科学博士,加拿大渥太华大学计算机科学CO-OP录取案例
  13. 1980-2018年中国及世界各国实际利率数据
  14. git将项目提交到本地创库
  15. 计算机工程师对社会报答什么,报答作文400字(精选10篇)
  16. 取模(余)%运算详解
  17. 微信真的在后台频繁读取用户相册吗?
  18. Nginx命令stop或者quit停止服务器无效失效
  19. 10分钟解读《财富自由之路》
  20. 软件测试就是挑Bug?也许你有认知偏差

热门文章

  1. java批量下载多个文件并压缩
  2. java中多线程下载
  3. c# .net iot+香橙派orangepi开发板 200多块打造自家远程 浇花助手 系统
  4. Adobe Photoshop CS4綜合討論
  5. 移动光猫GM219-S破解 超级用户和密码
  6. CSS之选择器(二)复合选择器
  7. 【Educoder】密码学理论与实战 30+完整过题代码
  8. C语言实现猜数字游戏(数字炸弹)
  9. JAVA计算机毕业设计中国古诗词学习平台Mybatis+源码+数据库+lw文档+系统+调试部署
  10. 华为OJ_1960_字符串分割