Androidを使用してカスタムフォントに出会うピット


最近のプロジェクトでは、他の平面の漢字や他の文字の展示について、具体的な詳細は触れませんでしたが、どのようにこれらのTTFフォントファイルを使うかは、Type Faceという種類によって実現されます.
フォントファイルを使う
私たちはフォントファイルを使うことができます.①一般フォントファイルはプロジェクトのAsetsディレクトリに置いて、使う時:
Typeface typeface = Typeface.createFromAsset(getAssets(), "fonts/xxxx.ttf");
textView.setTypeface(typeface);
②すべてのフォントファイルをAspsetsディレクトリの下に置くと、パッケージ化されたAPKファイルが大きくなります.それでは、サービス端末に必要なフォントファイルをダウンロードして携帯のSDカードに行く必要があります.
Typeface typeface = Typeface.createFromFile(Environment.getExternalStorageDirectory() + "/xxxx.ttf");
textView.setTypeface(typeface);
注意する必要がある問題:使用時にエラーが発生する可能性があります.java.lang.RuntimeException: native typeface cannot be made、一般的に2つの状況があります.①フォントパスのエラー:経路、フォント名のスペルなどを詳しくチェックしてください.②フォントファイルが大きすぎます.これはAssetsディレクトリの中では大丈夫です.SDカードの中でフォントファイルが大きすぎると、この異常が報告されます.Androidの下にあるフォントファイルを読み込む場合は、この記事を参照してください.
また、このフォントファイルを複数使うと、呼び出しのたびにこのように書くと、実行のたびにもう一度フォントを読み込むことになり、メモリがどんどん大きくなり、メモリが漏れてしまいます.ソリューション:ロードされたフォントファイルTypefaceを定数として定義し、必要な時に持ってきて使えばいいです.
また、ここでも紹介したいのですが、もし私たちのプロジェクトがすでに開発されているなら、次のバージョンでは別のユーザー定義のフォントに変更する必要があります.どうすればいいですか?以下の二つの文章はいくつかの参考を提供できます.Android-全自動でAPPのフォントを置換するシステムに含まれる任意のフォントAndroidはLayoutInflater setFactoryを探究します.
異なるフォントを読み込み、1行の単語を表示します.
上で述べたフォントファイルを使って、文字のフォントが同じになるようにします.この行の文字列が別の平面である場合、または各文字が使わないフォントファイルを表示するにはどうすればいいですか?ここでまず大まかに考えを言いましょう.後で詳しく説明します.どうやって実現しますか?まず、単語の長さを一つずつ取得し、文字列全体を巡回して、単語のappedをSpannable StringBuiderオブジェクトの中に入れて、setSpan(Object what, int start, int end, int flags)メソッドを呼び出します.最初のパラメータは、TypefaceSpanという種類を借りてフォントファイルをロードする必要があります.第二、三つのパラメータはこのフォントの開始インデックスと終了インデックスに対応しています.この時は最初に得られた単語の長さが必要です.最後にText Viewの方法を呼び出して、このSpannable StringBuiderのオブジェクトに渡せばいいです.
はい、まずこのようにしましょう.後に具体的な実現を言います.