Android: FontFormatException при добавлении шрифта в Android

Я имею дело с японским шрифтом. Я нашел хорошие японские шрифты с именем noto sans cjk jp, но они слишком тяжелы для использования для каждого текстового просмотра в Android (16 МБ). Я конвертирую его из oft в ttf с помощью онлайн-конвертера:
Облачное преобразование
Преобразование файлов
Шрифты 2 you
Теперь он кажется более подходящим (около 8 КБ). Однако, когда я добавляю его в свое приложение, это вызывает ошибку FontFormatException

java.awt.FontFormatException: Font name not found
at sun.font.TrueTypeFont.init(TrueTypeFont.java:573)
at sun.font.TrueTypeFont.<init>(TrueTypeFont.java:191)
at sun.font.SunFontManager.createFont2D(SunFontManager.java:2461)
at java.awt.Font.<init>(Font.java:615)
at java.awt.Font.createFont0(Font.java:969)
at java.awt.Font.createFont(Font.java:877)
at android.graphics.FontFamily_Delegate.nAddFontFromAsset(FontFamily_Delegate.java:343)
at android.graphics.FontFamily.nAddFontFromAsset(FontFamily.java)
at android.graphics.FontFamily.addFontFromAsset(FontFamily.java:70)
at android.graphics.Typeface.createFromAsset(Typeface.java:185)
at com.example.user.fontchange.Typefaces.get(Typefaces.java:18)
at com.example.user.fontchange.CustomView.<init>(CustomView.java:18)
at com.example.user.fontchange.CustomView.<init>(CustomView.java:13)

Мои вопросы:
1/ Можно ли как-нибудь проверить правильность преобразованного шрифта?
2/Кто-нибудь знает, как заставить Android Studio принимать имя моего шрифта? Я также нашел ссылку Загрузка некоторого TrueType Шрифт из файла TTF на Java, но ответ не решает мою проблему.

РЕДАКТИРОВАТЬ 1:

Вот мой CustomView для добавления нового шрифта:

public class CustomView extends TextView {
    public CustomView(Context context) {
        this(context, null, 0);
    }

    public CustomView(Context context, AttributeSet attrs) {
        this(context, attrs, 0);
    }

    public CustomView(Context context, AttributeSet attrs, int defStyleAttr) {
        super(context, attrs, defStyleAttr);
        setTypeface(Typefaces.get(context, "fonts/NotoSansCJKjp-Medium.ttf"));
    }
}

Вот мой макет xml в main_activity.xml

<com.example.user.fontchange.CustomView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="ABC"/>

РЕДАКТИРОВАТЬ 2:

Вот класс Typefaces

public class Typefaces {
    private static final String TAG = "Typefaces";

    private static final Hashtable<String, Typeface> cache = new Hashtable<String, Typeface>();

    public static Typeface get(Context c, String assetPath) {
        synchronized (cache) {
            if (!cache.containsKey(assetPath)) {
                try {
                    Typeface t = Typeface.createFromAsset(c.getAssets(),
                        assetPath);
                    cache.put(assetPath, t);
                    Log.e(TAG, "Loaded '" + assetPath);
                } catch (Exception e) {
                    Log.e(TAG, "Could not get typeface '" + assetPath
                            + "' because " + e.getMessage());
                    return null;
                }
            }
            return cache.get(assetPath);
        }
    }
}

Пожалуйста, дайте мне знать, если у вас есть какие-либо предложения. Будем признательны за любую помощь, заранее спасибо!


person LuongTruong    schedule 07.04.2016    source источник
comment
можете ли вы опубликовать свой код при применении TypeFace и где вы разместили файл шрифта в проекте Android Studio?   -  person Ramesh Kumar    schedule 07.04.2016
comment
@RameshKumar: я добавил свой код. Когда я меняю текст с ttf на otf (у меня есть 2 шрифта с одинаковым именем в моей папке шрифтов), это работает. Надеюсь увидеть ответ   -  person LuongTruong    schedule 08.04.2016
comment
Реализация класса шрифтов?   -  person Ramesh Kumar    schedule 08.04.2016
comment
@RameshKumar: я только что добавил свой класс Typefaces. Думаю ничего особенного. Я просто отправляю к нему путь и загружаю шрифт из актива.   -  person LuongTruong    schedule 11.04.2016
comment
docs.oracle.com/javase/7/docs/ api/java/awt/ с этим эталонным шрифтом не конвертировался должным образом..   -  person Ramesh Kumar    schedule 11.04.2016