通常,在日本以外销售的旧版 (<4.1) Android 设备默认呈现中文版汉字。在日本境内销售的 Android 设备默认呈现日文版汉字。DroidSansJapanese 是与 DroidSans 对应的日文字体,可在 AOSP 中使用。似乎制造商可以在创建 Android 版本时选择在显示文本时使用系统/供应商提供的字体的偏好。即使您在 (<4.1) 非日语设备上更改您的区域设置,它仍然可以显示不正确的字符版本。
如果您想为日本的日本用户本地化您的应用程序,他们很可能会在日本购买设备,因此汉字将正确显示(假设制造商采取了上述要求)。如果您可以接受此行为,则无需进行任何更改。如果您正在构建一个针对日本以外用户(例如希望学习日语的人)的应用程序,那么这听起来可能不太好。
Android 4.1发布后,对日式汉字的支持得到了改进。此提交包含有关更改内容的一些详细信息。如果您的手机当前使用的是日文语言环境,Android 应该会显示日文汉字。我已经在运行 Android 4.1 的非日本三星 Galaxy Note 2 上看到了这种行为。当我将系统语言设置为英语(英国/美国)时,我在查看汉字文本时看到了中国风格的渲染。但是,当我将语言设置为日本语时,我可以看到日本风格的渲染。我没有对此进行测试,但我想知道以编程方式强制语言环境是否也可以强制显示 4.1+ 设备的日式汉字。
您不能通过 XML 属性将字体设置为资产中的字体。您必须使用类似于您在原始问题中发布的代码在 Java 中执行此操作。要在全局范围内执行此操作,您可以创建自己的 TextView 子类来设置正确的字体,或者您可以遍历布局中的所有视图(例如,在 Activity.setContentView(int) 之后)并相应地更新它们(如果它们是 TextViews) . 在另一个问题中对此解决方案有更详细的描述。包含日文字体可能会使您的 APK 膨胀相当大。
如果您正在为日本的日本用户编写应用程序,我不会费心采取任何行动,因为它应该已经为他们正确显示了。Android 4.1+ 设备的用户也有良好的体验,前提是他们使用的是日语语言环境。否则,捆绑字体就是您的答案,并且您已经对所需内容有了很好的了解。