在我们的应用程序中,我们使用的是Roboto和Roboto Bold.但是,在Android的某些版本(似乎是4.0到4.1)中,我们在使用Roboto的导入版本(即使用Typeface.createFromAsset())时出现文本渲染问题,而这些版本在使用内置版本时不会出现Roboto(即Typeface.DEFAULT).
我知道Roboto和Roboto Bold是在Android 4.0中引入的,但我似乎无法找到任何保证这些字体无论制造商修改如何都可用的东西(例如Touchwiz,Sense).如果确保它们存在,我们可以使用版本检查仅对低于Android 4.0的设备使用自定义导入.
最佳答案
编辑:通过一些实验,特别是允许用户更改字体的Galaxy S3,这是我发现的:
>使用Typeface.create(Typeface.SANS_SERIF,Typeface.NORMAL)将返回CUSTOM字体,而不是系统默认的sans-serif字体(即Roboto)
>相反,使用Typeface.create(“sans-serif”,Typeface.NORMAL)(或BOLD),无论用户的字体自定义如何,它都将返回Roboto.从下面的列表中,你可以实际使用上面的“helvetica”,“tahoma”,“verdana”或“arial”而不是“sans-serif”,结果相同.
我发现了一个名为system_fonts.xml的文档,它似乎确认Roboto将用于SDK目录中对Typeface.SANS_SERIF的任何引用:
platforms > android-14 > data > fonts