Android で OpenType フォント機能 (スモール キャップ、古いスタイルの数字など) を使用する方法はありますか? カスタム TextView のようなものが理想的です。
2 に答える
API レベル 21 の時点で、ペイントは OpenType フォント機能をサポートするようになりました。
古いので、代わりに dcow's answer を見てください
Android がそのような API を提供しているとは思いませんが、WebView を使用できます。特に、新しい KitKat Chrome WebView が古い WebView でサポートされていない場合は便利です。プリインストールされている Droid アラビア語 Naskh フォントを使用して、opentype 機能の設定の違いを確認できるサンプル:<div style="-webkit-font-feature-settings: 'rlig' 0">لا</div>
それ以外の場合は、Harfbuzz/Freetype をコンパイルする JNI に飛び込む必要があると思います。他に方法がない場合は、グリフのアウトラインをレンダリングするために Cairo を使用してください。いくつかのHarfBuzz の例を見てください。Android アプリケーションに移植できる場合があります。opentype 機能 (レイアウト、ライン ラッピング) の構成以外に必要なものによっては、ICU4C または Pango やその他のライブラリのコンパイルが必要になる場合がありますが、もちろんモバイル アプリだけでも非常に大きな依存関係になります。