在textview中显示日文文本时,android默认使用中文字体,显示错误的字符,示例here。将语言环境设置为日语可以在模拟器上使用,但在我的 Galaxy s3 上不起作用,可能是因为它不支持日语。还有其他解决方案是以编程方式从资产设置字体,例如:
textView.setTypeface(Typeface.createFromAsset(getAssets(), "DroidSansJapanese.ttf"));
但这似乎有点拼凑。有没有办法通过xml布局将字体设置为支持日语的字体?
一般来说,在日本境外销售的旧版 (似乎制造商可以在创建 Android 版本时选择在显示文本时使用系统/供应商提供的字体的首选项。即使您在 (
如果您想为日本的日语用户本地化您的应用程序,他们很可能会在日本购买设备,因此汉字将正确显示(假设制造商采取了上述所需操作)。如果您可以接受此行为,则无需进行任何更改。如果您正在构建一个针对日本境外用户(例如希望学习日语的人)的应用程序,那么这听起来可能不太好。
改进了对日文汉字的支持安卓4.1被释放了。这次提交有一些关于更改内容的详细信息。如果您的手机当前使用日语区域设置,Android 应显示日语风格的汉字。我在运行 Android 4.1 的非日本三星 Galaxy Note 2 上看到过这种行为。当我将系统语言设置为英语(英国/美国)时,我在查看汉字文本时会看到中文风格的渲染。但是,当我将语言设置为日本语时,我可以看到日语风格的渲染。我没有测试过这个,但我想知道是否以编程方式强制区域设置还可以强制 4.1+ 设备显示日文汉字。
您无法通过 XML 属性将字体设置为资源中的字体。您必须使用与原始问题中发布的代码类似的代码在 Java 中执行此操作。要在全局范围内执行此操作,您可以创建自己的 TextView 子类来设置正确的字体,也可以迭代布局中的所有视图(例如,在 Activity.setContentView(int) 之后)并相应地更新它们(如果它们是 TextView) 。该解决方案有更详细的描述另一个问题。包含日语字体可能会使您的 APK 显着膨胀。
如果您正在为日本的日本用户编写应用程序,我不会费心采取任何操作,因为它应该已经为他们正确显示。 Android 4.1+ 设备的用户也有良好的体验,只要他们使用日语区域设置。否则,捆绑字体就是您的答案,并且您已经很清楚需要什么。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)