2016-08-12 13 views
13

アセットファイルからロードされたカスタム書体を使用してテキストを表示するカスタムViewクラスを作成しています。タイプフェイスの基本的な外観はセリフフォントであり、フォントファイルのTrueTypeプロパティはそれがセリフであることを示します。それにもかかわらず、フォントにない文字の場合、Androidはサンセリフの書体(Androidのバージョンに応じてRobotoまたはNotoのように見えます)に戻ります。StaticLayoutのTypeface.SERIFにフォールバックする方法はありますか?

これを制御する方法はありますか?Androidレイアウトエンジンがserifタイプフェイスに戻ってくるようにするには? (同様Paint#setFontFeatureSettings()に渡すかもしれないいくつかの魔法の文字列、またはPaintで使用する書体のスタックを指定するかもしれない方法はありますか?)

アプリが配布されたときに、任意のソリューションが動作しなければならないので、Androidのシステムでゲームをプレイ設定ファイルはオプションではありません。また、私はthis question(これはまだ4年後に未回答です)を知っていますが、私の問題は少し異なりますが、両方の問題の解決策は非常によく似ているかもしれません。

答えて

0

Lollipopでは、FontFamilyと呼ばれる非表示のクラスと、Typeface.createFromFamiliesという非表示のメソッドがあります。あなたが非常に慎重であれば、おそらくこのようなものをリフレクションやその他のトリッキーで使うことができますが、パブリックAPIにフォールバックする準備はできています。

関連する問題