15

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

Android レイアウト エンジンがセリフ書体にフォールバックするようにこれを制御する方法はありますか? (たぶん、に渡す魔法の文字列Paint#setFontFeatureSettings()や、で使用する書体のスタックを指定する方法のようにPaint?)

アプリが配布されたときにどのソリューションも機能する必要があるため、Android のシステム構成ファイルを使用してゲームをプレイすることはできません。また、私はこの質問を認識しています(4 年経ってもまだ回答がありません) が、私の問題は少し異なりますが、両方の問題の解決策は同じである可能性があります。

4

1 に答える 1

0

Lollipop の時点で、FontFamilyという隠しクラスとTypeface.createFromFamiliesという隠しメソッドがあります。十分に注意すれば、おそらくリフレクションやその他のトリックを介してこのようなものを使用できますが、パブリック API にフォールバックする準備をしておいてください。

于 2016-11-03T07:10:39.763 に答える