でカスタム フォントを使用しようとしていTextView
ます。TextView
テキストはtextView1.setText(Html.fromHtml(htmlText));
HTML に太字と斜体のスパンが含まれている
今。カスタムフォントを購入しました。フォントには 3 つの異なるファイル (ttf) が付属しています。1 つは通常用、もう 1 つは太字、イタリック用です。
これら3つのフォントファイルをテキストビューに適用するにはどうすればよいですか?
でカスタム フォントを使用しようとしていTextView
ます。TextView
テキストはtextView1.setText(Html.fromHtml(htmlText));
HTML に太字と斜体のスパンが含まれている
今。カスタムフォントを購入しました。フォントには 3 つの異なるファイル (ttf) が付属しています。1 つは通常用、もう 1 つは太字、イタリック用です。
これら3つのフォントファイルをテキストビューに適用するにはどうすればよいですか?
このリンクは、Android フォントをカスタマイズする方法を確認するのに役立ちます: http://mobile.tutsplus.com/tutorials/android/customize-android-fonts/
これらのフォント ファイルをテキストビューに適用する方法に関しては、最初にそれらをプロジェクトに統合する必要があります。
Typeface tf = Typeface.createFromAsset(this.getAssets(),
"fonts/xxx.TTF");
txt1.setTypeface(tf);
ttf ファイルは --> assets/fonts/xxx.TTF に配置する必要があります。
必要なすべての詳細は、「カスタム フォントの使用」の段落にあります。
v26 以上のサポート ライブラリまたは新しい AndroidX ライブラリを使用している場合、API 16+ の現時点での最善の方法は、フォント リソース ファイルを定義することです。基本的には、fonts フォルダーに通常および斜体の ttf フォント ファイルを追加し、フォント リソース xml を作成します。そして基本的にそれを次のようにします
<?xml version="1.0" encoding="utf-8"?>
<font-family xmlns:app="http://schemas.android.com/apk/res-auto">
<font
app:fontStyle="normal"
app:fontWeight="400"
app:font="@font/custom_regular_font" />
<font
app:fontStyle="italic"
app:fontWeight="400"
app:font="@font/custom_italic_font" />
<font
app:fontStyle="normal"
app:fontWeight="700"
app:font="@font/custom_bold_font" />
</font-family>
最後の 1 つは太字のフォント用です。この xml を適用します。custom_font_family.xml をテキストビューに android:fontFamily="@font/custom_font_family" として想定します。これで、3 つのスパン タイプのいずれかで fromHtml を使用して設定した HTML テキストは適切なフォントを使用します。 、必要に応じて、これにより、完全に異なるフォントを混合したカスタム フォント ファミリを使用することもでき、文字通り同じファミリに属している必要はありません。
そのすべてのフォントを同じ textView のテキストに 1 つずつ適用してみましたか。これで、同じ TextView により多くの効果を適用できると思います。
ミロスのコードは正しい。さらに、私は私自身の説明を入れました。フォントをアセット フォルダーに追加できます。その後、そのフォントを 1 つずつ textView に適用できます。
確かではありませんが、あなたに役立つかもしれません。
私のコード:
Typeface font1 = Typeface.createFromAsset(getAssets(), "YOUR_FONT1.ttf");
Typeface font2 = Typeface.createFromAsset(getAssets(), "YOUR_FONT2.ttf");
Typeface font3 = Typeface.createFromAsset(getAssets(), "YOUR_FONT3.ttf");
chips_text.setTypeface(font1);
chips_text.setTypeface(font2);
chips_text.setTypeface(font3);
コメントや質問はお気軽に。
アセットを組み込むために、コードを簡単にリファクタリングしたいと考えていると思います。
TextView を拡張して、HTML を解析し、onDraw で適切な書体を適用しようとします。
パラメーターをオーバーライドsetText
して解析し、使用する文字と適切な書体のマップを作成します。
次に、オーバーライドして描画する前に、前の手順で作成したマップに合わせてonDraw
の書体を変更します。super.getPaint()
コードは、TextView の拡張クラスでテキストを正しく描画するonDraw
方法の方法で提示されたものと同じように見えるはずです。、ただし、適用する代わりに、以前に決定された書体を設定します。super.getTypeface()
それがあなたを助けることを願っています