【问题标题】:Correcting Hindi (Unicode) rendering in Android更正 Android 中的印地语 (Unicode) 呈现
【发布时间】:2012-11-14 05:11:08
【问题描述】:

我成功添加了一个自定义字体 (DroidSansFallBack.ttf) 来显示印地语字符而不是 Pre ICS 上的块。无论如何,一切都在 4.1+ 上运行良好。

但是 Froyo 和 Gingerbread 的渲染顺序是错误的。 我知道它没有解决http://code.google.com/p/android/issues/detail?id=4153

纠正渲染的可能解决方法是什么? (我不想使用图片)

编辑: 例如,

दिन 来自 values-hi 的字符串呈现为 दनि

नक्षत्र 呈现为 नक् ष त र

(在 4.1+ 上一切都正确渲染)

【问题讨论】:

  • 试试其他印地语字体,你可以试试wazu.jp/gallery/Fonts_Devanagari.html
  • @the100rabh 我怀疑字体是问题,因为它适用于 4.1+
  • 你能展示如何显示字符串吗?它是在代码中,xml(值-hi)吗?..
  • @the100rabh 我尝试了其他一些字体 Mangal.ttf Akshar.ttf 和其他字体。但问题不在于字体,它是字形渲染的已知问题,如 code.google.com 上的问题中所述。我想知道的是一种适用于 pre ics 设备的可行技术解决方法。
  • @shkschneider 我添加了示例字符串。但是这个问题是众所周知的,并记录在谷歌代码问题上。我想要一些能让我正确呈现这些的东西(至少对于 webview)

标签: android unicode hindi


【解决方案1】:

对于您的问题,我有一个替代解决方案,但不完全... 使用字体....

Typeface tf = Typeface.createFromAsset(getAssets(),"Hindi-SARAL1.TTF"); 

为 नक्षत्र 使用.......

 TextView tv = (TextView) findViewById(R.id.textView1);

tv.setText("n95"); 

tv.setTypeface(tf);

对于दिन........ unicode 值继续没有差距.. 我在 和 2367 之间给出了一个空格;

tv.setText(Html.fromHtml("&# 2367;&# 2342;&# 2344;"));

 tv.setTypeface(tf);

【讨论】:

  • 是的,我考虑过这个解决方案。但这只是添加印地语的解决方案。我需要的是实现一个基于 Android 资源的解决方案,以 unicode 实现多种印度语言(如泰米尔语)。
【解决方案2】:

我找不到一个简单的解决方法来修复各处的渲染。所以最后我不得不将印地语语言功能限制在安卓 4.0 或更高版本的设备上。

【讨论】:

    猜你喜欢
    • 2023-03-14
    • 2012-01-19
    • 1970-01-01
    • 2016-03-21
    • 2013-04-13
    • 1970-01-01
    • 2016-08-07
    相关资源
    最近更新 更多