As a rule, older (Android) devices sold outside of Japan reproduce the Chinese version of kanji in Chinese. Android devices sold in Japan make the Japanese version of kanji by default. DroidSansJapanese is a Japanese headset for DroidSans and is available on AOSP. It seems that the manufacturer can choose a preference that uses the fonts provided by the supplier / supplier when displaying text during the creation of their Android assembly. Even if you change your language on a (non-standard) device (<4.1), it can still display the wrong version of characters.
If you want to localize your application for Japanese users in Japan, they will most likely have a device purchased in Japan, and therefore kanji will display correctly (provided that the manufacturer has taken the action required above). If this behavior is acceptable to you, then you do not need to make any changes. If you are creating an application targeted at users outside of Japan (for example, people who want to learn Japanese), this may not seem very good.
Japanese kanji support improved when Android 4.1 was released. This command contains some information about what has been changed. If your phone is currently using Japanese, Android should display Japanese-style kanji. I saw this behavior in action with a non-Japanese Samsung Galaxy Note 2 running Android 4.1. When I set my system language to English (UK / US), I see Chinese-style rendering by looking at the text of the kanji. However, when I set the language to ζ₯ζ¬θͺ, I see Japanese-style rendering. I have not tested this, but I am wondering if it can force the use of the locale , can also force Japanese-style characters to be displayed for devices with 4.1 +.
You cannot set the font to one of the attributes in the XML attribute. You should do this in Java using code similar to what you posted in the original question. To do this globally, you can either make your own TextView subclass that sets the correct font, or you can iterate over all the views in the layout (for example, after Activity.setContentView (int)) and update them accordingly if they are TextViews , Below is a slightly more detailed description of this solution in another question . Including the Japanese font is likely to inflate your APK for a significant amount.
If you are writing an application for Japanese users in Japan, I would not take any action, since it should correctly display them. Users of Android 4.1+ devices also have good experience, provided that they use Japanese. Otherwise, font binding is your answer, and you already have a good idea of ββwhat is required.
source share