2014-09-03 123 views
3

我正在使用一个按钮,并将文本设置为10 \ u02E3。这应该显示10和(上标x)(10⁷),但在某些设备上,它不会。这表明,我在诺基亚X上测试了这一点。在星系S2上,我根本没有得到上标,我只得到了10.某些unicode字符不会在某些设备上呈现

我该怎么做才能在所有设备上呈现上标和下标?如果他们不在场,是否有任何方法将它们“包含”在我的应用程序中?

+2

嗯......那么使用'myText.setText(HTML.fromHTML(“10 x”));'? – 2014-09-03 11:33:13

+2

看起来像一个字体问题,但是,Unicode Consortium建议使用不同的方式创建上标字符。你可以用你的应用程序捆绑一个字体吗? – 2014-09-03 18:43:36

+0

是的,我可以。导出.ttf后我必须做些什么? – 2014-09-03 18:50:58

回答

1

这是由于到Android无法找到一个支持的字形,你试图产生,通常的过程是检查/system/etc/system_fonts.xml,如果没有找到它试图在fallback_fonts.xml

检查渲染字体您可以检查文件here

假设所有设备都具有这些渲染功能是很困难的,确保您能够显示字形的最佳方法是使用自定义组件重写Android的默认TextView,并且以您想要的方式绘制字形。